GDBコマンドはバッファ(スタック)の開始アドレスを出力します。

GDBコマンドはバッファ(スタック)の開始アドレスを出力します。

GDBデバッガの場合

(gdb) p &buffer

このコマンドは、バッファ(スタック)の開始位置の内容を印刷するために使用されますか、またはアドレスを印刷するために使用されますか?

内容の場合、住所をどのように印刷しますか?

ベストアンサー1

タイプによって異なりますbuffer

bufferおそらく、バッファの先頭へのポインタである可能性があります。 Cスタイル宣言はstruct stackElement *buffer;次のようになります(アスタリスクを参照してください)。この場合:

  • p &bufferポインタ自体が格納されているアドレス(つまり、「バッファアドレスのアドレス」)を印刷します。
  • p bufferbufferバッファのアドレスであるポインタ変数の値を印刷する必要があります。
  • p *bufferバッファの内容を印刷する必要があります。

ポインターではなく構造体型の場合buffer(例C宣言にstruct stackElement buffer;アスタリスクがない可能性がある)、次のようにします。

  • p &bufferバッファのアドレスである構造体のアドレスを印刷します。
  • p bufferこの構造の内容を印刷します(=スタックの場合は最初のスタック要素である可能性があります)
  • p *buffer間違いです。

おすすめ記事