0
我在兩臺虛擬機之間使用串行端口進行kgdb設置(目標是主機的克隆),我可以在其中設置斷點。但是當遇到斷點時,我嘗試在gdb中使用list命令查看源代碼,但它顯示kgdb.c的源代碼,而不是我的文件,其中斷點如下所示:在使用gdb調試內核時無法查看源代碼
(gdb) l
1713 void kgdb_breakpoint(void)
1714 {
1715 atomic_set(&kgdb_setting_breakpoint, 1);
1716 wmb(); /* Sync point before breakpoint */
1717 arch_kgdb_breakpoint();
1718 wmb(); /* Sync point after breakpoint */
1719 atomic_set(&kgdb_setting_breakpoint, 0);
1720 }
1721 EXPORT_SYMBOL_GPL(kgdb_breakpoint);
1722
(gdb)
1723 static int __init opt_kgdb_wait(char *str)
1724 {
1725 kgdb_break_asap = 1;
1726
1727 if (kgdb_io_module_registered)
1728 kgdb_initial_breakpoint();
1729
1730 return 0;
1731 }
1732
(gdb)
1733 early_param("kgdbwait", opt_kgdb_wait);
(gdb)
Line number 1734 out of range; kernel/kgdb.c has 1733 lines.
(gdb)
如何在斷點擊中時查看合適的源代碼?
[編輯]當我嘗試列出已經是vmlinux(靜態編譯的內核)的一部分的函數的源代碼時,它顯示它的來源。但是當我嘗試使用add-symbol-file來調試動態加載的模塊並添加它的符號時,它不顯示源代碼。這意味着,我的模塊出了問題。任何人都可以幫我解決這個模塊有什麼問題嗎?