、ブレークポイントは、プログラムの実行を許可する位置を一時停止し、GDBのプログラムを中断させるには、3つの方法があります。
- GDBのブレークポイントの通知は、プログラム内の特定の場所を一時停止するには
- 通知は、特定のメモリ位置GDB変化の監視点値を一時停止する場合
- 特定のイベントが発生したときに中断時点gdbの通知をキャプチャ
ブレークポイントを設定
ブレークポイントのGDBを設定する多くの方法は、以下の3つの方法の主な用途があります。
- ブレーク機能
- ブレークLINE_NUMBER
- ブレークファイル名:LINE_NUMBER
- ファイル名を破る:機能
次のように使用されるコードであります
//main.cpp
#include <iostream>
using namespace std;
void sw(int &a,int &j);
int main(){
int i = 3;
int j = 7;
cout<<"i = "<<i<<" j= "<<j<<endl;
sw(i,j);
cout<<"i = "<<i<<" j= "<<j<<endl;
return 0;
}
//sw.cpp
void sw(int &a,int &j){
int t = a;
a = j;
j =t;
}
上記記述されたソースファイル、使用する場合g++ -Wall -g -c main.cpp sw.cpp
とg++ -o swap main.o sw.o
コンパイルおよびリンク、GDBを用いてデバッグ実行ファイルは、以下のブレークポイントを設定
GDBデバッグプロセスで使用することができinfo breakpoints
ている場合をブレークポイントビュー、
名前 | 説明 |
---|---|
A | ブレークポイントのシリアル番号 |
タイプ | ブレークポイントのタイプ |
AVAIL | ブレークポイントの展開、プログラムはブレークポイントが発生する原因を停止するだけで、次回、続けて、デル(tbreak)、DIS(一回有効) |
ENB | ブレークポイントが有効になっています |
住所 | アセンブラプログラムでブレークポイントの位置 |
何 | のソースコードにブレークポイント位置 |
ブレークポイントを削除します
削除またはクリアするには、deleteコマンドを使用します
delete break_list
clear function/filename:function/line_number/filename:line_number
無効にブレークポイント
無効無効ブレークポイントを使用して有効にすると、ブレークポイント命令の実行が一度に削除されます表現
disable point_list
enable once point_list
ブレークポイントの履歴書の実行
1)次のステップ及び
Iは、セクションを参照、この
2)続行
続行コマンドをブレークポイントまたはトリガするためにプログラムが終了するまで継続するプログラム復元することである
3)仕上げ
完了コマンドをプログラムが復元されていることを示し、現在のスタックフレームが完了するまで、すなわち、フレーム0の最後であります、あなたは、再帰関数ここでは考慮される必要があり
、次の再帰的な手順のいずれかを使用して、たとえば
//de.cpp
#include <iostream>
using namespace std;
void f(int a){
if(a > 0){
f(a-1);
}else{
return;
}
}
int main(){
f(10);
return 0;
}
図1に示すように、セットブレークポイントである場合に提供される5行目では、現在の関数のスタック情報が表示されるビュー
の図は、スタック全体で見ることができるで有する機能10は、スタックF(A = 1)の関数である、仕上げを行う場合コマンドスタック機能が終了した後、
F(A = 1)の端部が行います。スタック機能は、わずか9に存在します
4)ANまで
決済手続きは必ずしも機能のうち、バックサイクル中に、現在のサイクルの実行を終了するまで
条件付きブレークポイント
break break-args if condition
= 1dは、行5にブレークポイントを設定したときの図は、表示されています
ここでは、今日、明日はgdbデバッガを続けます