2016-09-30 13 views
0

私の目標はstr_mainのアドレス空間を把握することですが、gdbはブレークポイントをスキップします。GDBブレークポイントが停止しない

住所の場所はどのようにして確認できますか?

私はシンプルなCプログラム、stack.c持っている:私はしかし、行21にブレークポイントを設定し、GDBを入力すると、私は、デバッガを実行すると、私は次のメッセージを取得、

.... 
19 int main(int argc, char **argv[]) 
20 { 
21 char str_main[517]; 
22 FILE *badfile; 
23 
24 badfile = fopen("badfile","r"); 
.... 

を:

Breakpoint 1, main(argc=1, argv=0xbffff3d4) at stack.c:24 
24   badfile = fopen("badfile","r"); 
+2

実際には、行22はコンパイルされたバイナリの実行可能な行ではありません。しかし、何が問題なのですか? 24行目で停止することは、あなたがしたいことを完全には大丈夫です。 22行目のデバッガで、24行目に表示されないことがわかると思いますか?つまり、問題はありません。 – kaylum

答えて

3

GDBはデフォルト値なしの宣言で停止しません。

24歳になっても、引き続き住所を印刷できます。

p /s str_main 
関連する問題