[解決済み] プログラムが信号SIGTRAPを受信した、トレース/ブレークポイントトラップ
2022-02-01 22:54:49
質問事項
ある(組み込み)ソフトウェアをデバッグしています。ある関数にブレークポイントを設定したのですが、なぜかそのブレークポイントに到達すると
continue
いつもこの関数(一度だけ呼ばれるべき初期化関数)に戻ってきます。ブレークポイントを解除すると
continue
と、GDBが教えてくれます。
Program received signal SIGTRAP, Trace/breakpoint trap.
ブレークポイントを使用していたので、"ブレークポイントトラップ"に陥ったと推測されます。ブレークポイントトラップとは何ですか?
解決方法は?
ブレークポイントトラップは、プロセッサがブレークポイントに到達したことを意味します。 この現象が発生する理由には2つの可能性があります。 最も可能性が高いのは、CPUがリセットして再びブレークポイントにヒットしたため、初期化コードがヒットしていることです。 もう1つの可能性は、ブレークポイントを設定したコードが、実際には初期化以外の場所で実行されていることです。 コンパイラの最適化により、ブレークポイントがどのコードに対応し、どの実行パスがそこに到達できるかを正確に判断することが難しい場合があります。
関連
-
[解決済み】Valgrind が "Invalid write of size 8" で文句を言う。
-
[解決済み】C言語で「関数の型が競合しています」と表示される、なぜ?
-
[解決済み] strtokのセグメンテーションフォールト
-
[解決済み】ポインタへの代入時に互換性のないポインタ型からの初期化警告が発生した
-
[解決済み】GCC Cコードで静的宣言が非静的宣言に続くことを解決するには?
-
[解決済み】デバッガgdbの使用時に不明な終了シグナルが発生する。
-
[解決済み】警告。この関数ではXが初期化されていない状態で使用される可能性があります。
-
[解決済み】コンパイラの警告 - 真理値として使用される代入の周囲に括弧を付けることを推奨する
-
[解決済み】エラー:不明な型名'bool'
-
[解決済み】なぜか。"エラー: 配列型を持つ式への代入"
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Valgrind - strcpyのサイズ1の無効な書き込み
-
[解決済み】「ポインタから異なるサイズの整数へのキャスト」エラーが発生するのはなぜですか?
-
[解決済み】C言語で「関数の型が競合しています」と表示される、なぜ?
-
[解決済み】組み込み関数「malloc」の暗黙の宣言の非互換性
-
[解決済み】C言語で浮動小数点例外(コアダンプ)発生
-
[解決済み】スレッド1:EXC_BAD_ACCESS(コード=1、アドレス=0x0)標準Cメモリ問題
-
[解決済み】サイズ8の無効な読み取り - Valgrind + C
-
[解決済み] エラー: `itoa` はこのスコープで宣言されていません。
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み】配列型char[]が代入できない [重複]。