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版で確認しました。
(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版で確認しました。