{"id":851,"date":"2011-11-26T19:28:55","date_gmt":"2011-11-26T18:28:55","guid":{"rendered":"http:\/\/blog.m-ri.de\/?p=851"},"modified":"2011-11-26T18:32:04","modified_gmt":"2011-11-26T17:32:04","slug":"vs-tipps-tricks-debugger-pseudo-variablen","status":"publish","type":"post","link":"http:\/\/blog.m-ri.de\/index.php\/2011\/11\/26\/vs-tipps-tricks-debugger-pseudo-variablen\/","title":{"rendered":"VS-Tipps &#038; Tricks: Debugger Pseudo Variablen"},"content":{"rendered":"<p>Die folgenden Variablen helfen mir immer wieder beim Debuggen und zeigen einem w\u00e4hrend des Debuggens in Watch-Window manch n\u00fctzliche Information:<\/p>\n<ul>\n<li><strong><em>$TID<br \/>\n<\/em><\/strong>Die Thread ID des aktuellen Threads. N\u00fctzlich wenn man mehrere Threads debuggt und bestimmte Threads bei einem Breakpoint identifizieren muss.<\/li>\n<li><em><strong>$HANDLES<\/strong><\/em><br \/>\nDie Anzahl der aktuell benutzen System-Handles des Prozesses. Handle Leaks lassen sich damit im Debugger leicht \u00fcberwachen.<\/li>\n<li><em><strong>$ERR<br \/>\n<\/strong>GetLastError<\/em> leicht gemacht. Schl\u00e4gt ein WinApi Befehl fehl, dann ist es sch\u00f6n das man sofort beim Debuggen im Watch-Window sehen kann was die Ursache war. Oft genug ist ja im Code selbst kein Aufruf von <em>GetLastError<\/em> vorhanden oder n\u00f6tig.<\/li>\n<\/ul>\n<p>Siehe auch MSDN:<br \/>\n<a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms164891.aspx\">http:\/\/msdn.microsoft.com\/en-us\/library\/ms164891.aspx<\/a><\/p>\n<p>BTW: <em>WinDbg<\/em> hat noch einige mehr nette Pseudovariablen:<br \/>\n<a href=\"http:\/\/blogs.msdn.com\/b\/debuggingtoolbox\/archive\/2008\/06\/16\/special-command-using-variables-and-retrieving-information-through-pseudo-registers.aspx\">http:\/\/blogs.msdn.com\/b\/debuggingtoolbox\/archive\/2008\/06\/16\/special-command-using-variables-and-retrieving-information-through-pseudo-registers.aspx<\/a><br \/>\nSchmerzhaft vermisse ich immer wieder <em>$PEB, $TEB, $TPID, $RA<\/em>\u00a0im <em>Visual Studio, <\/em>komisch, dass es die nur im <em>WinDbg<\/em> gibt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die folgenden Variablen helfen mir immer wieder beim Debuggen und zeigen einem w\u00e4hrend des Debuggens in Watch-Window manch n\u00fctzliche Information: $TID Die Thread ID des aktuellen Threads. N\u00fctzlich wenn man mehrere Threads debuggt und bestimmte Threads bei einem Breakpoint identifizieren muss. $HANDLES Die Anzahl der aktuell benutzen System-Handles des Prozesses. Handle Leaks lassen sich damit &hellip; <a href=\"http:\/\/blog.m-ri.de\/index.php\/2011\/11\/26\/vs-tipps-tricks-debugger-pseudo-variablen\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eVS-Tipps &#038; Tricks: Debugger Pseudo Variablen\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,27,172,31],"tags":[38,306,274,37],"class_list":["post-851","post","type-post","status-publish","format-standard","hentry","category-debugging","category-programmieren","category-vs2008","category-vs2010","category-vs-tipps-tricks","tag-debuggen","tag-vc-2008","tag-vc-2010","tag-vs-tippstricks"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/851","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=851"}],"version-history":[{"count":1,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/851\/revisions"}],"predecessor-version":[{"id":919,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/851\/revisions\/919"}],"wp:attachment":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/media?parent=851"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/categories?post=851"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/tags?post=851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}