3、gdbが主要な学習のブレークポイント

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/qq_29983883/article/details/102639546

、ブレークポイントは、プログラムの実行を許可する位置を一時停止し、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.cppg++ -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デバッガを続けます

おすすめ

転載: blog.csdn.net/qq_29983883/article/details/102639546