>プログラミングC++/WindowsでPDBを使ってスタックバックトレースを表示する2019年12月13日プログラムで構造化例外が出た時に、スタックバックトレースを見たくなったのですが、その時に作った簡単な動作検証用コードを載せておきます。構造化例外が出るコードまずはわざと構造化例外が発生するプログラムを用意します。下のmain関数から始まって、test2関数で構造化例外が発生します。0;}例外が発生したら、se_translator関数でStackBackTraceクラスを使ってスタックバックトレースを表示するようにしています。SEHの例外あり(/EHa)」にしておく必要があります。StackBackTraceクラススタックバックトレースを表示するクラスでは、CaptureStackBackTrace関数で取得したアドレスを使ってSymFromAddr関数でシンボル情報を取得しています。本筋とは関係ありませんが、newするのが嫌だったので、あらかじめ必要なサイズ分確保したsymbol変数を取りまわす方法を取っています。Databaseファイル)が必要になります。PDBファイルは、該当プログラムのカレントディレクトリか、_NT_SYMBOL_PATH環境変数、または_NT_ALTERNATE_SYMBOL_PATH環境変数が指すディレクトリに置いておく必要がありますが、以下いずれかの方法によりそのパスを指定することもできます。SymSetSearchPath関数でパスを指定するSymInitialize関数の第二引数にパスを指定するそれぞれ以下のような形になります。TRUE);参考:https://docs.microsoft.com/en-us/windows/win32/api/dbghelp/nf-dbghelp-symsetsearchpathhttps://docs.microsoft.com/en-us/windows/win32/api/dbghelp/nf-dbghelp-syminitialize実行結果サンプルプログラムの実行結果です。下から追っていくことで、実行経路を追うことができます。サンプルコードのダウンロード本記事で紹介したサンプルコード全体を以下にアップロードしました。ご自身の責任の下で、自由にご利用ください。...続きを見るTwitterSharePocketHatenaLINEコピーする-プログラミングauthor関連記事プログラミング2020/1/2apkパッケージの中のAndroidManifest.xmlを読む方法Androidのapkパッケージファイルの中に含まれているAndroidManifest.xmlファイルは、バイナリ形式にエンコードされているため、そのままではテキストエディタ等で読むことができません。以下の手順で、エンコードされているAndroidManifest.xmlをテキストエディタで人間が読める形にデコードすることができます。Restart」で更新したところ、再起動しない状態になってしまいました。Googleで検索すると、日本語化している場合はどうのこうのという記事はたくさん出てきますが、日本語化はしていないのであまり役に立たず。原因不明ですが、私がうまくいった解決方法を載せておきます。Fuke平日は会社員、休日はサンデープログラマーとして活動中。一か月間の人気記事まだデータがありません。