LLVMとコンパイラと投資に関するメモ

管理:nothingcosmos
連絡先:nothingcosmos@gmail.com

LLVMをGDBでデバッグする

2009-12-09 07:27:09 | ソフトウェア
LLVMをデバッグする場合の手順※自己流 Debian GNU/Linux

(1)Makefile.configのDEBUG_RUNTIME=1に書き換える
(2)Makefile.configのDEBUG_SYMBOLS=1に書き換える
(3)Makefile.configのOPTIMIZEを0に書き換える
(4)Makefile.configのGCC環境変数をgcc -gに書き換える※不要かも
(5)Makefile.configのG++環境変数をg++ -gに書き換える※不要かも

この状態でMakeを行い、各ディレクトリにReleaseではなくDebugディレクトリが作成されていれば成功だと思う。

仮にoptをgdbでデバッグする場合は、
gdb llvm-2.6/Debug/bin/opt

ブレークポイントの例は、
break LoopStrengthReduce.cpp:runOnFunction

最近はgdb-7.0がリリースされていて調子が良い。
7.0の目玉はリバース実行機能。
recordeした箇所まで、逆順に実行することができる。
コマンドは、reverse-nextとか、、

リバース実行する場合は、recordeで記録する必要がある。
optレベルであれば、さくさく動くのでお薦め。
詳細はぐぐってください。。


※今はconfigureがしっかりしているようで、、
※configure --disable-optimized --enable-debug-runtime --enable-debug-symbols
※を指定してbuildすれが、デバッグできることをtrunk版で確認しました。