2011-08-10 1 views

答えて

2

あなたはここhttp://darkdust.net/files/GDB%20Cheat%20Sheet.pdfから開始することができ、非常に便利です来ます。言及する価値

ポイント

    あなたが開始
  • は、最後の命令を実行しますGDBのコマンドラインに入力します
    デバッグであり、すでに実行中のプロセスにGDBを添付することができ
  • は、 に来て非常に便利な
  • GDBで何らかのスクリプトを書くことができます。-x falgを使って を指しています。あなたのスクリプトはip経由でターゲットに接続したいとします(リモート
    デバッグ)、あなたは毎回
    を入力するそのip/keppを覚えたくありません。 > gscript のgdb -x gscriptアプリケーション

[OK]を、いくつかのニッチ詰め込む:GDB 7.1 Pythonスクリプトから始めても はそんなにより強力になりました

は "1234リモート192.168.XX.XXをターゲット" エコーサポートされています。 -

(gdb)start 
(gdb)layout split    // list the assembly and c 
(gdb)ni       // exec next instruction in assembly 
(gdb)print $pc     // prints the contents of register PC(use $) 

あなたが行く

(gdb)start 
(gdb)call factorial(5) 
上のいくつかのユニットテストをやって試すことができます

は、あなたがメモリの破損をデバッグするときに、条件付きブレークポイントは非常に便利です

(gdb)start 
(gdb)break <func>:<line> 
(gdb)commands 1     // '1' is the break number 
> silent 
> printf "var1 = %d\t var2 =%d\n",var1,var2 
> continue 
> end 

データブレークポイントを以下試すことができますが、アプリケーションのタイミング(reatime行動を)邪魔したくないと仮定したが、まだいくつかの変数の更新を表示します

(gdb)start 
(gdb)watch var 
(gdb)watch 0x80001212 

デバッグスレッド

(gdb)info threads 
(gdb)thread 2      // switch to thread '2' 
関連する問題