[解決済み] GDB: 変数が等しい場合にブレークする
2023-01-02 12:20:42
質問
ある変数が設定した値と等しくなったときに、GDBにブレークポイントを設定させたいのですが、この例を試してみました。
#include <stdio.h>
main()
{
int i = 0;
for(i=0;i<7;++i)
printf("%d\n", i);
return 0;
}
GDBからの出力です。
(gdb) break if ((int)i == 5)
No default breakpoint address now.
(gdb) run
Starting program: /home/SIFE/run
0
1
2
3
4
5
6
Program exited normally.
(gdb)
ご覧のように、GDBはブレークポイントを作りませんでしたが、これはGDBで可能なのでしょうか?
どのように解決するのですか?
ブレークポイントにネストされたウォッチポイントの他に を使用すると、'ファイル名:行番号' に 1 つのブレークポイントを設定し、条件を使用することもできます。 その方が簡単な場合もあります。
(gdb) break iter.c:6 if i == 5
Breakpoint 2 at 0x4004dc: file iter.c, line 6.
(gdb) c
Continuing.
0
1
2
3
4
Breakpoint 2, main () at iter.c:6
6 printf("%d\n", i);
私のように行番号が変わることにうんざりしている場合は、ラベルを追加します。 を追加し、そのラベルにブレークポイントを設定することができます。
#include <stdio.h>
main()
{
int i = 0;
for(i=0;i<7;++i) {
looping:
printf("%d\n", i);
}
return 0;
}
(gdb) break main:looping if i == 5
関連
-
解決済み] g++ コンパイルエラー: ')'トークンの前に一次式があることが予想される
-
error: '.' トークンの前にunqualified-idを指定する必要があります。
-
g++が内部・外部コマンドソリューションとして認識されない、MinGWを初めて使うときの落とし穴
-
libc++abi.dylib: NSException タイプの捕捉されない例外で終了するエラー
-
error: 'for' loop initial declaration is only allowed in C99 mode 原因と解決方法
-
[解決済み] mallocで文字列を確保する
-
[解決済み] flexible array member not at end of structエラーの原因は何ですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] C言語でのブーリアン値の使用
-
[解決済み] なぜalloca()の使用はグッドプラクティスとみなされないのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
libc++abi.dylib: NSException タイプの捕捉されない例外で終了するエラー
-
C - 添え字の値が配列でもポインタでもベクトルでもないエラー
-
[解決済み] 初期化でポインタ対象の型から修飾語を捨てる
-
[解決済み] PTHREAD_MUTEX_INITIALIZER vs pthread_mutex_init ( &mutex, param )
-
[解決済み] C言語でchar配列をコピーする方法は?
-
[解決済み] c または c++ 用のシンプルな 2 次元クロスプラットフォームグラフィックスライブラリ?[クローズド]
-
[解決済み] C関数から文字列を返す
-
[解決済み] mallocとcallocの違い?
-
[解決済み] C言語でランダムなint型を生成するには?
-
[解決済み] プログラム終了前にmallocの後にfreeをしないと本当に何が起こるのか?