除錯方法(一)

2021-10-05 11:00:01 字數 749 閱讀 5083

(gdb) n

563 os <<"";

(gdb) p friendlist$1=

"[int

main

(int argc,

char

* ar**)

}if(bdaemon)

daemon_run()

;//省略無關**...

}

在這個程式中,我們接收到 ctrl + c 訊號(對應訊號 sigint)時會簡單列印一行資訊,而當用 gdb 除錯這個程式時,由於

ctrl + c 缺省會被 gdb 接收到(讓偵錯程式中斷下來),導致無法模擬程式接收這一訊號。解決這個問題有兩種方式:

(gdb)

handle sigint nostop print pass

sigint is used by the debugger. 

are you sure you want to change it? (y or n) y 

signal stop print pass to program description 

sigint no yes yes interrupt

(gdb)

make breakpoint pending on future shared library load? y/n

另類除錯方法

由於需要在沒有安裝vc的pc上進行除錯,所以在沒有ide環境的情況下trace巨集無法工作,而使用 messagebox 並不是乙個很好的方法。另一種簡單的方法是向console中輸出文字。在你的應用中增加如下 ifdef debug file fstdout null handle hstdout...

shellocde除錯方法

我知道主要有兩種 1.用vc6建乙個小工程,進入彙編模式,跳轉到shellcode,除錯分析。如 include char shellcode xeb.int main return 0 2.偵錯程式裡除錯,如od等,修改從eip開始處的機器碼,od可以通過快捷鍵 ctrl e 複製要除錯的shel...

USB key 除錯方法

1 開啟原始得 wince420,注意不能用編系統版本得 wince420,否則無法顯示.2 開啟已經建好得 ia平台 目錄是 e platform liwiareal 其他平台 則開啟相應的目錄 3 alt b t 開啟乙個 release directory 4 cd d wince420 pu...