Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 如何找到FreeBSD内核的确切行号?_Debugging_Stack Trace_Freebsd_Debug Symbols_Panic - Fatal编程技术网

Debugging 如何找到FreeBSD内核的确切行号?

Debugging 如何找到FreeBSD内核的确切行号?,debugging,stack-trace,freebsd,debug-symbols,panic,Debugging,Stack Trace,Freebsd,Debug Symbols,Panic,我正在FreeBSD内核上测试一个新的驱动程序 对于有经验的开发人员来说,这可能是微不足道的,但我无法找到这个问题的解决方案 我有一个内核恐慌,当它恐慌时,我得到恐慌的回溯 回溯显示恐慌发生在sayfoo\u bar()+0x94。如何提取与foo\u bar()+0x94对应的行号 内核是用调试符号构建的。我已经尝试过greppingnm内核,但它只包含调试符号 我该怎么做才能找到确切的行号呢?我建议阅读关于内核调试的FreeBSD手册 它详细解释了如何创建核心文件以及如何调用gdb。配置c

我正在FreeBSD内核上测试一个新的驱动程序

对于有经验的开发人员来说,这可能是微不足道的,但我无法找到这个问题的解决方案

我有一个内核恐慌,当它恐慌时,我得到恐慌的回溯

回溯显示恐慌发生在say
foo\u bar()+0x94
。如何提取与
foo\u bar()+0x94
对应的行号

内核是用调试符号构建的。我已经尝试过grepping
nm内核
,但它只包含调试符号


我该怎么做才能找到确切的行号呢?

我建议阅读关于内核调试的FreeBSD手册


它详细解释了如何创建核心文件以及如何调用gdb。

配置crashdumps-它通常只是将'dumpdev=“AUTO”'添加到/etc/rc.conf并重新启动-在崩溃和随后的重新启动之后,使用调试器分析转储,如下面所示:“kgdb/boot/kernel/kernel/var/crash/vmcore.latest”。“kgdb”的东西基本上是GDB黑客攻击来支持内核调试;“where”命令应该向您显示回溯。

如果您使用FreeBSD,请删除标记[linux内核]我添加了该标记,因为使用linux内核的人比使用FreeBSD内核的人多。基本技术保持不变,因此,如果有人回答linux内核的问题,只需稍加修改即可将其应用于freebsd内核。无论如何,我能够解决我的问题。