0

gdbと関数を使用してプログラムをデバッグしようとしていstepます。関数が同じファイルにある限り、すべてが正常に機能します。

しかし、関数が外側にある場合、gdb はそれを飛び越えます。

どうすれば解決できますか?

ノート:

  • -ggdbオプションでコンパイルしました
  • 私は使用してGNU gdb Red Hat Linux (6.7-1rh)
    います(それが可能であれば、gdbのstartfrequenceに登場しました)

例:

#include "foo2.h"  // contains function foo2

void foo(void){ printf("hello"); }


void main (void){

  foo();    // debuggable -> jump into possible
  foo2();   // not debuggable 


}
4

1 に答える 1

1

gdb でアプリケーションをデバッグするときは、ni (nexti) の代わりに si (stepi) を使用します。si は他の関数にステップインし、ni は現在の関数内にとどまります。詳細については、 http: //sourceware.org/gdb/current/onlinedocs/gdb/Continuing-and-Stepping.html#Continuing-and-Steppingのドキュメントを確認してください( nexti または stepi の場合は ^F )。

于 2012-10-18T14:25:11.843 に答える