■92476 / inTopicNo.2) |
Re[1]: リリースビルド実行中に行番号を取得する |
□投稿者/ Azulean (1087回)-(2019/09/29(Sun) 22:01:44)
|
■No92474 (から さん) に返信 > プログラム実行中に例外が発生した場合に、 > どこで例外が発生したか知るために、 > 例外発生時に行番号を保存する機能を付けたいと考えています。
行番号までなくても、メソッドの呼び出し履歴や発生した例外、そのメッセージからある程度想像できることが多いとは思いますが、巨大なメソッドが多い…という感じですか?
> MsgBox(New StackFrame(True).GetFileLineNumber) > を使うことで、デバッグ中の場合には、 > 取得できることは分かったのですが > リリースビルドを実行中には取得できないのでしょうか?
バイナリファイルのどこの行かを知るためには PDB ファイルが一緒に存在することが必要です。 ただし、リリースビルドでは最適化の都合で、常に行番号が取得できるとは限りません。 http://dotnet.kiyochan.jp/article/177124366.html
> ソースコード無しでEXEファイルだけ人に渡して > 例外発生時に例外箇所をLogファイルに保存するようなことってできませんか?
先にも書きましたように、最適化の影響もあるので、ソースコードの行と一対一で対応づけるのは難しいと思います。
|
|