{"id":86,"date":"2007-06-27T20:34:24","date_gmt":"2007-06-27T18:34:24","guid":{"rendered":"http:\/\/blog.m-ri.de\/index.php\/2007\/06\/27\/mfc-80-pdb-dateien-mit-und-ohne-source-informationen\/"},"modified":"2007-06-27T20:34:24","modified_gmt":"2007-06-27T18:34:24","slug":"mfc-80-pdb-dateien-mit-und-ohne-source-informationen","status":"publish","type":"post","link":"http:\/\/blog.m-ri.de\/index.php\/2007\/06\/27\/mfc-80-pdb-dateien-mit-und-ohne-source-informationen\/","title":{"rendered":"MFC 8.0 PDB Dateien mit und ohne Source Informationen"},"content":{"rendered":"<p>Gestern hat es mich \u00fcberrascht, dass ich beim debuggen auf einmal nicht mehr in eine MFC Funktion mit der F11 Taste steppen konnte. Er sprang immer \u00fcber diese Zeile. Selbst \u00fcber die Assembler Ansicht war es nicht m\u00f6glich die entsprechenden Source-Dateien der MFC im Debugger durch zu steppen.<\/p>\n<p>\u2753 Eigent\u00fcmlich. Ein kurzer Blick in die Debug Ausgabe und in die Liste der geladenen Module zeigte, dass die PDB Datei der MFC80UD.DLL aus meinem Symbol-Cache geladen wurden.<br \/>\nIn der Modulliste stand als Info: <strong><em>Symbols loaded (source information stripped)<\/em><\/strong>.<br \/>\nIch verwende einen zentralen Symbol Cache auf unserem Entwicklungsserver und habe nat\u00fcrlich auch als <em>http:<\/em><span class=\"cpp-comment\"><em>\/\/msdl.microsoft.com\/download\/symbols<\/em> als Quelle f\u00fcr unbekannte Symbole angegeben.<\/span><\/p>\n<p>Scheinbar ist auf irgend einem Weg vom Symbolserver aus dem Netz eine Version in meinen Cache hineingelangt, die nicht alle Debug Informationen enth\u00e4lt. Also gerade die Informationen, die es mir erlauben durch den Sourcecode der MFC zu steppen.<\/p>\n<p>Die entsprechende Version mit den Source Informationen befindet sich durch die Installation von Visual Studio im Verzeichnis <em>C:\\Windows\\Symbols\\dll<\/em>. Auch in den Optionen f\u00fcr mein Visual Studio war zus\u00e4tzlich nat\u00fcrlich korrekt auch <em>C:\\Windows\\Symbols\\dll<\/em> als Pfad angegeben. Die dortigen PDB Dateien wurden jedoch offensichtlich ignoriert. Ein manuelles Nachladen aus diesem Verzeichnis half allerdings sofort.<br \/>\nBei der n\u00e4chsten Debug Session wurden jedoch wieder die Informationen aus dem Cache geladen.<\/p>\n<p>Also was machen?<\/p>\n<p>\u2757 Ich habe einfach die entsprechenden Symbol aus dem <em>C:\\Windows\\Symbols\\dll<\/em> Verzeichnis in meinen Symbol Cache geladen. Das geht einfach mit dem entsprechenden <em>symstore <\/em>Befehl:<\/p>\n<p><em>symstore add \/r \/f C:\\Windows\\Symbols\\dll\\*.* \/s &lt;My symbol store&gt;<\/em><\/p>\n<p>Und siehe da. Nun werden immer die richtigen PDB-Dateien geladen und Step-Into Befehl F11 verh\u00e4lt sich beim debuggen wieder wie gewohnt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gestern hat es mich \u00fcberrascht, dass ich beim debuggen auf einmal nicht mehr in eine MFC Funktion mit der F11 Taste steppen konnte. Er sprang immer \u00fcber diese Zeile. Selbst \u00fcber die Assembler Ansicht war es nicht m\u00f6glich die entsprechenden Source-Dateien der MFC im Debugger durch zu steppen. \u2753 Eigent\u00fcmlich. Ein kurzer Blick in die &hellip; <a href=\"http:\/\/blog.m-ri.de\/index.php\/2007\/06\/27\/mfc-80-pdb-dateien-mit-und-ohne-source-informationen\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eMFC 8.0 PDB Dateien mit und ohne Source Informationen\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[11,3],"tags":[38,361,352,36],"class_list":["post-86","post","type-post","status-publish","format-standard","hentry","category-debugging","category-programmieren","tag-debuggen","tag-ide","tag-mfc","tag-vs-2005"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/86","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/comments?post=86"}],"version-history":[{"count":0,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/86\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/media?parent=86"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/categories?post=86"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/tags?post=86"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}