Debugging 如何找到FreeBSD内核的确切行号?
我正在FreeBSD内核上测试一个新的驱动程序 对于有经验的开发人员来说,这可能是微不足道的,但我无法找到这个问题的解决方案 我有一个内核恐慌,当它恐慌时,我得到恐慌的回溯 回溯显示恐慌发生在sayDebugging 如何找到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
foo\u bar()+0x94
。如何提取与foo\u bar()+0x94
对应的行号
内核是用调试符号构建的。我已经尝试过greppingnm内核
,但它只包含调试符号
我该怎么做才能找到确切的行号呢?我建议阅读关于内核调试的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内核。无论如何,我能够解决我的问题。