1

Linuxデバッガーgdbを使用して、特定のC ++クラス(ファイルChord.ccで表される)の関数(任意の関数)が特定のメモリ位置(たとえば0xffffbc)にアクセスするかどうかを検出する方法があるかどうかを知る必要があります。それは私を大いに助けます。ありがとう。

4

1 に答える 1

4

GDB ウォッチポイントは、探しているものです。

そのページからの引用:

ウォッチポイントを使用して、式の値が変更されるたびに実行を停止できます。これが発生する特定の場所を予測する必要はありません。(これは、データ ブレークポイントと呼ばれることもあります。) 式は、単一の変数の値のように単純な場合もあれば、演算子によって結合された多くの変数のように複雑な場合もあります。例は次のとおりです。

  • 単一の変数の値への参照。
  • 適切なデータ型にキャストされたアドレス。たとえば、`*(int *)0x12345678' は、指定されたアドレスで 4 バイトの領域を監視します (int が 4 バイトを占めると仮定します)。

次に、この投稿の手法を適用して条件付きウォッチポイントにし、そのクラスからの特定の関数呼び出しに制限する方法を見つけることができるかどうかを確認できます。この議論は、その点でも関連性があると思われるかもしれません。

于 2012-12-11T21:47:44.727 に答える