(gdb) file test
reading symbols from /root/worker/test...done.
(gdb) b memcpy
breakpoint 1 at 0x4004a0
(gdb) r
starting program: /root/worker/test
breakpoint 1, 0x00007ffff7df5fa0 in memcpy () from /lib64/ld-linux-x86-64.so.2
missing separate debuginfos, use: debuginfo-install glibc-2.17-157.el7_3.5.x86_64
(gdb)
test.c
#include #include #include int main()
原因:沒有安裝 debuginfo 的除錯安裝包,正常gdb除錯時,如果你沒有要跳入系統函式中執行,是不會報這個錯誤的,
本例中使用了memcpy函式,所以需要安裝
glibc-debuginfo-2.17-157.el7_3.5.x86_64.rpm
glibc-debuginfo-common-2.17-157.el7_3.5.x86_64.rpm
安裝後即可正常執行
gdb 跟蹤除錯
要進行除錯程式首先要生成乙個含有除錯資訊的執行程式命令如下 此時便會生成乙個含有除錯資訊的可執行檔案,然後便可以用 gdb 去除錯這個程式了,進入除錯程式命令,但是如果用 gdb 去除錯乙個未包含除錯資訊的可執行檔案則會發生錯誤 執行 gdb gdb 啟動常用的引數 從指定檔案中讀取符號表資訊,並把...
gdb 跟蹤除錯命令整理
內容源自於陳浩csdn部落格的用gdb除錯程式一系列文章 要進行除錯程式首先要生成乙個含有除錯資訊的執行程式命令如下 此時便會生成乙個含有除錯資訊的可執行檔案,然後便可以用 gdb 去除錯這個程式了,進入除錯程式命令,但是如果用 gdb 去除錯乙個未包含除錯資訊的可執行檔案則會發生錯誤 執行 gdb...
GDB除錯之watch變數跟蹤
開發中經常遇到某個變數明明已經賦值了,但是最後得到的結果卻並非賦予的值。解決這樣問題讓人很頭疼,原因我們可能都知道,可能是記憶體越界導致這部分值被覆蓋掉了,但是什麼時候被覆蓋掉的呢?總不能在每個懷疑的地方列印這個值吧?這樣效率很低,而且定位不一定準確。這個時候使用gdb除錯中的watch就可以輕鬆搞...