問題タブ [gdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
11392 参照

debugging - ctrlcを実行するときにセグメンテーション違反をデバッグする

プログラムをキャンセルすると、セグメンテーション違反が発生します。デバッグにgdbを使用していますが、問題は、デバッグ中にCtrl-Cを押すと、gdbがプログラムをキャンセルせず、プログラムを停止することになっていることを実行することです。

私が欲しいのは、Ctrl-Cを実行し、gdbがそれを停止できないようにすることです。これを行う方法はありますか?デバッグに関する他の推奨事項はありますか?問題がどこから来ているのかはっきりとわからないので、printfを使用できません。

0 投票する
2 に答える
1312 参照

gdb - GDBを使用したBison生成コードのデバッグ

Bisonで生成されたコードで定義されているyyparse関数にステップインしようとしていますが、GDBから次のようなメッセージが表示されます。

Reading file "foo.tab.c"...No such file or directory.

Bisonによって生成されたファイルはfoo.ccと呼ばれます。foo.tab.c代わりに、なぜそれを探しているのですか?

0 投票する
11 に答える
6469 参照

c++ - GCC デバッガーのスタック トレースで間違ったファイル名と行番号が表示される

かなり大きな C++ プロジェクトを Mac OS X で g++ 4.0 を使用するように移植しようとしています。プロジェクトはエラーなしでコンパイルされますが、GDB を正しく動作させることができません。GDB コマンド ラインで「bt」と入力してスタックを表示すると、表示されるすべてのファイル名と行番号が間違っています。

たとえば、GDB スタック トレースによると、私のmain()関数は Mac OS X SDK の stdexcept にあるはずですが、これは意味がありません。

GDB がひどく誤動作する原因は何ですか? コード内の #line ステートメントと #file ステートメントを既にチェックし、コードに unix 行末しかないことを確認しました。また、プロジェクトをクリーンアップして再構築しました。Hello World プロジェクトのデバッグも試みましたが、同じ問題はありませんでした。

問題は、私がリンクしているサードパーティのライブラリの 1 つと、それらのコンパイル方法に関係している可能性がありますか? それとも全く違うものですか?

Xcodeによって実行されるgccとの 2 つの呼び出しの例を次に示します。知る限り、私のプロジェクトのすべての cpp ファイルはコンパイルされ、同じパラメーターでリンクされています。ld

/Developer/usr/bin/gcc-4.0 -x c++ -arch i386 -fmessage-length=0 -pipe -Wno-trigraphs -fpascal-strings -fasm-blocks -O0 -fpermissive -Wreturn-type -Wunused-variable -DNO_BASS_SOUND -D_DEBUG -DXCODE -D__WXMAC__ -isysroot /Developer/SDKs/MacOSX10.5.sdk -mfix-and-continue -fvisibility-inlines-hidden -mmacosx-version-min=10.4 -gdwarf-2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -D__WXDEBUG__ -D__WXMAC__ -c "/Users/adriangrigore/Documents/Gemsweeper Mac/TSDLGameBase.cpp" -o "/Users/adriangrigore/Documents/Gemsweeper Mac/build/Gemsweeper Mac.build/Debug/Gemsweeper Mac.build/Objects-normal/ i386/TSDLGameBase.o」

/Developer/usr/bin/g++-4.0 -arch i386 -isysroot /Developer/SDKs/MacOSX10.5.sdk "-L/Users/adriangrigore/Documents/Gemsweeper Mac/build/Debug" -L/Developer/SDKs/MacOSX10 .5.sdk/usr/local/lib -L/opt/local/lib "-F/Users/adriangrigore/Documents/Gemsweeper Mac/build/Debug" -F/Users/adriangrigore/Library/Frameworks -F/Developer/ SDKs/MacOSX10.5.sdk/Library/Frameworks -filelist "/Users/adriangrigore/Documents/Gemsweeper Mac/build/Gemsweeper Mac.build/Debug/Gemsweeper Mac.build/Objects-normal/i386/Gemsweeper Mac.LinkFileList" - mmacosx-version-min=10.4 /opt/local/lib/libboost_program_options-mt.a /opt/local/lib/libboost_filesystem-mt.a /opt/local/lib/libboost_serialization-mt.a /opt/local/lib/ libboost_system-mt.a /opt/local/lib/libboost_thread-mt.a "/Users/adriangrigore/Documents/Gemsweeper Mac/サードパーティ/FreeImage/Dist/libfreeimage.a" "/Users/adriangrigore/Documents/Gemsweeper Mac/サードパーティ/cpuinfo-1.0/libcpuinfo.a" -L/usr/local/ lib -framework IOKit -framework Carbon -framework Cocoa -framework System -framework QuickTime -framework OpenGL -framework AGL -lwx_macd_richtext-2.8 -lwx_macd_aui-2.8 -lwx_macd_xrc-2.8 -lwx_macd_qa-2.8 -lwx_macd_corehtml-2.8 -lwx_macd_adv-2.8 -lwx_macd_ -lwx_base_carbond_xml-2.8 -lwx_base_carbond_net-2.8 -lwx_base_carbond-2.8 -framework SDL -framework Cocoa -o "/Users/adriangrigore/Documents/Gemsweeper Mac/build/Debug/Gemsweeper Mac.app/Contents/MacOS/Gemsweeper Mac"-L/usr/local/lib -framework IOKit -framework Carbon -framework Cocoa -framework System -framework QuickTime -framework OpenGL -framework AGL -lwx_macd_richtext-2.8 -lwx_macd_aui-2.8 -lwx_macd_xrc-2.8 -lwx_macd_qa-2.8 -lwx_macd_html-2.8 - lwx_macd_adv-2.8 -lwx_macd_core-2.8 -lwx_base_carbond_xml-2.8 -lwx_base_carbond_net-2.8 -lwx_base_carbond-2.8 -framework SDL -framework Cocoa -o "/Users/adriangrigore/Documents/Gemsweeper Mac/build/Debug/Gemsweeper Mac.app/Contents/MacOS /ジェムスイーパー・マック」-L/usr/local/lib -framework IOKit -framework Carbon -framework Cocoa -framework System -framework QuickTime -framework OpenGL -framework AGL -lwx_macd_richtext-2.8 -lwx_macd_aui-2.8 -lwx_macd_xrc-2.8 -lwx_macd_qa-2.8 -lwx_macd_html-2.8 - lwx_macd_adv-2.8 -lwx_macd_core-2.8 -lwx_base_carbond_xml-2.8 -lwx_base_carbond_net-2.8 -lwx_base_carbond-2.8 -framework SDL -framework Cocoa -o "/Users/adriangrigore/Documents/Gemsweeper Mac/build/Debug/Gemsweeper Mac.app/Contents/MacOS /ジェムスイーパー・マック」8 -framework SDL -framework Cocoa -o "/Users/adriangrigore/Documents/Gemsweeper Mac/build/Debug/Gemsweeper Mac.app/Contents/MacOS/Gemsweeper Mac"8 -framework SDL -framework Cocoa -o "/Users/adriangrigore/Documents/Gemsweeper Mac/build/Debug/Gemsweeper Mac.app/Contents/MacOS/Gemsweeper Mac"

Xcode デバッガーに関する同様の質問を既にここで行っていることに注意してください。ただし、これは実際には Xcode のせいではなく、GCC / ld / GDB の問題であることを知ったので、再投稿します。

編集:私のプロジェクトでは、次のサードパーティ ライブラリを使用しています: SDLBoostwxWidgets。これがこの問題にとって重要かどうかはわかりませんが、念のために言及したかっただけです。

Xcode SDL プロジェクト テンプレートをコンパイルしようとしましたが、同じ問題は発生しなかったため、私のプロジェクトの何か特別なことが原因であるに違いありません。

2 番目の編集: ちょうど分かったように、「これは自動的に生成されたものです」という文字列を含むファイルを検索する際に間違いを犯しました。私が使用しているサードパーティのライブラリの 1 つであるFreeImageにすべて属している、同じ文字列を持つ数十のファイルを見つけました。そのため、問題は FreeImage に関連しているようですが、どうすればよいかまだわかりません。

0 投票する
2 に答える
2013 参照

gdb - 大きなバイナリのタブ完了割り込み

大きなバイナリのデバッグ中に誤ってタブ補完を起動すると、gdb はシンボル テーブルのスキャン中にしばらくフリーズします (私の場合は最大 1 分)。そのため、シンボル テーブル全体がスキャンされるまで待たなければなりません。gdb でこのプロセスを中断する方法はありますか?

0 投票する
10 に答える
5869 参照

c++ - プログラムの main(...) 関数を見つけるにはどうすればよいですか?

私は現在、数百のコード ファイルといくつかのサードパーティ ライブラリへの依存関係を含むプロジェクトを Mac OS に移植しています。最終的に、プログラムが警告やエラーなしでコンパイルされるようになりましたが、独自のメイン関数を実行しているようには見えません。

代わりに、サードパーティに属していると思われる他の主な機能を実行しているようです。この関数は、診断用のデータをコンソールに書き込み、その後終了します。

スタック トレースは有効に見えますが、gdb は各スタック エントリの正しい行番号とファイル名を表示しないため、デバッガを使用してこのメ​​イン関数が存在する場所を見つけることができません (詳細については、この未解決の質問を参照してください)。

検索が完了するまでに数分かかりましたが、結果は返されませんでした。

私のプロジェクトは他のライブラリの中でも SDL を使用していますが、私は SDL_Main() とその根本的な問題を認識しており、完全に機能する SDL プロジェクト テンプレートの上にプロジェクトを構築しました。したがって、私自身のメイン関数が有効であると確信しています。

何がうまくいかないのか分かりますか?現在、不正なメイン関数を見つけて削除する方法についてのアイデアがありません。

ありがとう、

エイドリアン

編集:私が見つけたように、「これは自動的に生成されたものです」という文字列でファイルファイルを検索する際に間違いを犯しました。同じ文字列を持つ数十のファイルを見つけました。これらはすべて、私が使用しているサードパーティ ライブラリの 1 つである FreeImage に属しています。ということで、問題は FreeImage に関係しているようですが、同封の MacOs makefile で Freeimage をライブラリとしてコンパイルし、ライブラリのみをインクルードしたので、どうすればよいかまだわかりません。FreeImage の新しいバージョンを再構築して、問題が解決したかどうかを確認します。

0 投票する
3 に答える
5704 参照

debugging - Solaris GDB: 実行を一時停止するには?

Solaris 10 x86 でクローズド ソース プログラムをデバッグするために GDB を使用しています。

私は gdb をプログラムにアタッチして実行を続けますが、後で実行を一時停止して一部のメモリを調べたい場合はできません。CTRL-C を押すと、プログラムを一時停止して (gdb) プロンプトにドロップする代わりに、^C のみが出力されます。

(gdb) プロンプトに戻るにはどうすればよいですか? 私は何か間違ったことをしていますか、どうすればこれを機能させることができますか?

0 投票する
1 に答える
296 参照

unix - 引数(つまり、バイナリ名)をEmacs gdbコマンドにどのように渡しますか?

今、私はF5をemacsでgdbを開始するように設定しています:

(global-set-key [f5]'gdb)

これによりミニバッファに切り替わり、実行可能ファイルへのパスを入力します...このパスの入力をバイパスする方法を見つけたいです...

Makefileを調べ、それを解析して実行可能ファイルのフルパスを計算し、標準出力に出力する実行可能ファイルを作成しました...これを.emacsから呼び出すことは可能ですか...そして、どういうわけか出力をに渡しますgdbコマンド?