シンボルのデバッグと、それらで何ができるか、さらにはデバッグについていくつか質問があります。私は主に GCC に関する回答に興味がありますが、MSVC を含む他のコンパイラでどのように見えるかを知りたいです。
初めに:
- デバッグ シンボルの一般的な形式/種類は何ですか?
- それらはコンパイラやプラットフォームとどのように関連していますか? プラットフォーム間で GCC と MinGW では常に同じ形式ですか?
- ビルドにそれらが含まれているかどうか、およびそれらがどのような形式であるかを実行時に確認できますか?
そして、いくつかのより実用的な質問...どうすればいいですか:
- 現在のファイルと行番号を確認しますか?
- 実行中の (修飾された) 関数名を取得しますか?
- 現在の完全なスタック トレースを取得しますか?
実行時チェックについて話していることを強調しておきます。これらはすべて GDB で読み取ってきれいに印刷できますが、デバッグ シンボル自体からどの程度の情報が得られ、GDB もアクセスできるソース コードからどの程度の情報が得られるかはわかりません。
デバッグシンボルを解析してそのような情報を生成できるライブラリがあるでしょうか?
デバッグ シンボルは、そのようなソリューションにある程度の移植性を期待できるほど十分に標準化されていますか?