GDB 除錯跟蹤系統函式報錯解決方案

2021-09-08 17:05:08 字數 677 閱讀 1296

(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就可以輕鬆搞...