はじめに DWARFはデバッグ情報を格納するためのデータフォーマットです。 デバッグ情報を取り出して、利用する方法を紹介します。 コンパイル後のデバッグ情報を使って 網羅的にstruct / class の 情報を取り出せるため便利です。 sample 具体例を使って説明します。 class parent { char pvalue; }; class child : public parent { short cvalue; }; struct record { int rvalue; }; int main() { class parent p; class child c; struct record r; return 0; } $ LANG=C objdump -W ./a.out | grep "DWARF Version" DWARF Version: 2 $ LANG=C
![DWARF debugging formatを利用する - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/48b37f731b56f448980bcbb10d5f6e14febd32fe/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9RFdBUkYlMjBkZWJ1Z2dpbmclMjBmb3JtYXQlRTMlODIlOTIlRTUlODglQTklRTclOTQlQTglRTMlODElOTklRTMlODIlOEImdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPTIyMDNiZTg0YTI0YTJlY2NhY2VkYTAyZmE2MDlhMWU3%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDB0b2JpcmEtY29kZSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9Mzc1ODg4Zjc4MjBiNmQ3ODUxMTdjNTJiYTJmMmJlZDc%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Dc00c183f3dd93721fd91912cd885188c)