2015-02-05 41 views
1

我正在用ddd在qemu中調試JOS內核(從mit operating system lab)。我在調用在init.c中定義的內核主函數i386_init的彙編指令上設置了一個斷點。當我啓動內核時,ddd(gdb)在該指令上打破並顯示綠色箭頭;但是當我使用stepi命令時,綠色箭頭消失並且ddd不會打開應該包含i386_init()定義的文件。調試過程只能繼續使用gdb。 ddd不遵循這個過程。更結束了,當我打開文件INIT.C,DDD顯示了這個錯誤:ddd綠色調試箭頭在逐步執行指令時消失

Line 1 of \"kern/init.c\" is at address 0xf0100040 but contains no code.\n

我做對這種錯誤的一些研究和看來,問題來自於動態鏈接庫。但就我而言,沒有動態庫。那麼,什麼會導致這類問題,以及如何解決?

回答

1

這個問題是由我編譯的交叉編譯器造成的,我認爲這可能有點bug。因爲我改變了編譯器,ddd現在工作正常。