gdb中設定共享庫斷點問題

2021-09-30 03:24:16 字數 587 閱讀 6109

假設我的可執行程式是a,共享庫為b.so 

我用gdb除錯a,想在b的某個原始檔(比如c.cpp,c.cpp與a不在同乙個目錄下)中設定斷點,使用下面的命令列 

break   c.cpp:123 

提示說「no   source   file   named   c.cpp」 

我嘗試用下面各種方法設定c.cpp的路徑也不行: 

1.   使用gdb的-d引數 

2.   使用gdb的dir命令 

3.   設定path環境變數    

如果我用gdb除錯b.so,即 

gdb   b.so 

則設定斷點是可以的,但光是乙個so沒法執行,那我該怎麼做呢?

當然可以除錯了 

如果你的.so的原始檔路徑在/so下面 

那你你首先需要 

$gdb   main  

$directory   /so    

記住用directory目錄

問題已經解決    

先break   main,   然後run,使.so載入 

然後再對共享庫進行break設定

GDB 斷點設定

啟動gdb後,首先就是要設定斷點,程式中斷後才能除錯。在gdb中,斷點通常有三種形式 斷點 breakpoint 在 的指定位置中斷,這個是我們用得最多的一種。設定斷點的命令是break,它通常有如下方式 可以通過info breakpoints n 命令檢視當前斷點資訊。此外,還有如下幾個配套的常...

GDB(設定斷點)

啟動gdb後,首先就是要設定斷點,程式中斷後才能除錯。在gdb中,斷點通常有三種形式 斷點 breakpoint 在 的指定位置中斷,這個是我們用得最多的一種。設定斷點的命令是break,它通常有如下方式 可以通過info breakpoints n 命令檢視當前斷點資訊。此外,還有如下幾個配套的常...

gdb 斷點設定(二)watch

2 watch watch l location expr thread threadnum mask maskvalue l 與 mask沒有仔細研究,thread threadnum 是在多執行緒的程式中限定只有被執行緒號是threadnum的執行緒修改值後進入斷點。經常用到的如下命令 watc...