大家都熟悉windows的调试机制,有了dump和pdb,windbg一跑ok了。linux如何调试呢?这就是core文件,core又如何生成如何调试呢?
@linux默认是不会产生core文件,怎么办呢?shell执行 ulimit -c unlimited,开启生成。至于如何一次设置时时生效大家研究去吧。
@这样默认下core生成在当前目录。靠,那岂不是很e吗!并且名字是core***,如果你下面有多个p,岂不是更e。如何指定位置和格式呢?shell 执行 echo "/tmp/corefile/core-%e-%p-%t">/proc/sys/kernel/core_pattern。%e进程明 %p 进程id %t时间,时间可以转化 没研究,本人看大小。本人第一次设置的时候e了,无论如何生成不了,这是怎么搞的,最后发现/corefile目录不存在,嘿嘿!大家应该不会犯这种错误。
@然后就是等待崩溃了
@如果没问题,你会发现core文件了
@调试core文件,之前听一个大牛调试过,感觉和windbg差不多,眼高手低了。自己调试发现竟然问题一堆堆,google了只能
@gdb 跑起来
@gdb怎么知道你调试那个core文件呢,看来我们需要自己指定。core-file 你的core文件
@bt,我靠堆栈看不到懂,为什么没有你熟悉的函数。大家猜,对了没有pdb!pdb就是你的可执行文件。file 指定你的out,bt. linux windbg来了
@怎么堆栈还是没有熟悉的函数呢,奥对了,你编译的时候-g了吗???
随性而写,为了时间走过,自己不会再遗忘曾经的拥有