SlideShare a Scribd company logo
Little Known
Native Debugging Tricks

            Ofek Shilon
 Director of Algorithms @ Sarin Technologies
       www.thetweaker.wordpress.com
VS Debugging Tricks
DISCLAIMER
VS AS AN INTERPRETER
Expression Evaluator
• Demo
• Scope
  – Watch, QuickWatch,
  – Immediate,
  – BP conditions, ‘when hit’
• Call Functions from the debugger!
Expression Evaluator
• Context Operator
  – Documentation is wrong.
  – Might require decorated names.
  – VS2010 blocked WIN-API, but eased usage of
    others.
  – VS11B supports the simpler syntax
     msvcr110d.dll!fabs(-8.0f)
Expression Evaluator
•   Thread context
•   Access insensitive
•   Blind to inlined functions
•   Things to try when evaluation fails:
    – Very explicit casting,
    – Explicit addresses.
Edit and Continue
• Demo
• Stale code
Edit and Continue
• Preparation: /ZI, /INCREMENTAL
Edit and Continue
• Limitations:
  – Inconsistent with /RELEASE, /OPT:REF, /OPT:ICF,
    /ORDER, /FORCE,
  – Does not invoke custom build steps,
  – Isn’t supported on attached processes,
  – Can’t change object layout,
  – Doesn’t regenerate IDL files,
  – Can’t change resource files,
  – Does not build static libs.
CLICK SAVERS
StepOver
• Demo
StepOver
• VC6: autoexp section [ExecutionControl]
• VC7: Reg key -
 HKCUSoftwareMicrosoftVisualStudio7.0NativeDEStepOver

• VC8:
 HKLMSoftwareMicrosoftVisualStudio8.0NativeDEStepOver

• VC10, VC11B:
 HKCUSoftwareMicrosoftVisualStudio10.0_ConfigNativeDEStepOver
 Dropped ‘=NoStepInto’ syntax
StepOver
• Warning!
  When 2 or more
  instances of VS
  are active, occasionally
  it would create and use
  a duplicate reg key



  … and all ’10.0_Config’ modifications would have no effect !
StepOver
• Credit: Andy Pennell
  http://blogs.msdn.com/b/andypennell/archive/2004/02/06/69004.aspx


• A request to make StepOver official:
  http://visualstudio.uservoice.com/forums/121579-visual-
  studio/suggestions/2668765-support-nostepinto-registry-mechanism
autoexp
• How’s the debugger ‘aware’ of STL containers?
• autoexp.dat
  – By default at
    %VS folder %Common7PackagesDebugger
autoexp
• Demo

• Specialized syntax for common containers:
  Array, List, Map, Tree.
• Re-parsed on every debugging session
• Extremely fragile, yet excellent investment
autoexp
• Status limbo:
autoexp
• Bypass file path via env var: _vcee_autoexp
• Bypass visualizer locally: xxx,!
• Bypass
  globally
  in
  Tools/Options:
autoexp
• Resources:
  – Avery Lee
    http://virtualdub.org/blog/pivot/entry.php?id=120
  – Stephan T. Lavavej BoostCon presentation
    http://filetolink.com/d/?h=a456fc7fd3d35644edcbe5e764d1ba63&t=1315076450&f=17ad36ef

  – My blog: complete MFC containers visualization, Matrix 2D
    visualization, and more
    www.thetweaker.wordpress.org
  – A request to make autoexp official:
    http://visualstudio.uservoice.com/forums/121579-visual-
    studio/suggestions/2056273-support-debug-visualizers-through-
    autoexp-dat
Sound Alerts
• Win7:
 Control Panel 
 Hardware and Sounds 
 Sound 
 Change system sounds
• WinXP:
 Control Panel 
 Sounds and Audio... 
 Program Events –
 Microsoft Developer
TRACING ERRORS
GetLastError Interactively
• GetLastError implementation:



•   (int*)($fs)+0x34
•   (int*)($tib)+0x34
•   $err !
•   Credit: msdn
    http://msdn.microsoft.com/en-us/library/dtw169z6.aspx
Extensions
• Customizing ‘,hr’ display in autoexp.dat:




• Other TEB data: (_TEB*)$tib
Breaking on Errors
• BP location: (int*)($tib)+0x34
• Specific error: BP condition
  – Slooooooooow
• g_dwLastErrorToBreakOn !
  – (int*){,,ntdll.dll}_g_dwLastErrorToBreakOn
  – Fails in VC10 over Win7. Restored in VC11B
• Credit: Daniel Pearson,
  http://blogs.msdn.com/b/danpear/archive/2007/04/06/2033100.aspx
INVESTIGATING CODE
Breaking on all class methods
• Break at function:
           Class::*

• Credit: Habib Heydarian
 http://blogs.msdn.com/b/habibh/archive/2009/09/10/class-breakpoint-
 how-to-set-a-breakpoint-on-a-c-class-in-the-visual-studio-debugger.aspx
Naming Native Threads
• Demo

• ‘Documented hack’
  Credit: MSDN
 http://msdn.microsoft.com/en-us/library/xcb2z8hs.aspx
Breaking on Data Read
• Some code required.
• Links to 4 implementations:
  http://thetweaker.wordpress.com/2011/05/22/breaking-on-data-read/


• Request to make it official:
  http://visualstudio.uservoice.com/forums/121579-visual-
  studio/suggestions/2668700-expose-break-on-read-breakpoints
Static Object Layout
• /d1reportSingleClassLayout
• /d1reportAllClassLayout


• Credit: Andy Rich
  http://blogs.msdn.com/b/vcblog/archive/2007/05/17/diagnosing-hidden-
  odr-violations-in-visual-c-and-fixing-lnk2022.aspx
ENHANCED DIAGNOSIS
Useful Pseudo-registers
• $tid
  -> very useful as a BP condition.
• $env=0
  -> view debugee environment variables
  – In VC11: just $env in watch
• $cmdline = 0
  -> view launching command line
  Credit: John Cunningham,
  http://blogs.msdn.com/b/ms_joc/archive/2004/08/23/218912.aspx
Useful Pseudo-registers
• $handles
  -> narrows down handle leaks
• $clk
  -> rough profiling
• $user
  -> view permissions info

• Credits: Steve Steiner, Gregg Miskelly, et. al.
  http://blogs.msdn.com/b/stevejs/
  http://blogs.msdn.com/b/greggm/
Searching Through Memory




• Credit: msdn
 http://msdn.microsoft.com/en-us/library/ms171363.aspx
www.thetweaker.wordpress.com
ofekshilon@gmail.com
                           THANK YOU.

More Related Content

PPTX
C++ Production Debugging
PPTX
Advanced Debugging with WinDbg and SOS
PPTX
Advanced windows debugging
PPTX
Who’s afraid of WinDbg
PPT
.NET Debugging Workshop
PPTX
Introduction to .NET Performance Measurement
PDF
Crash Dump Analysis 101
PDF
Cloud forensics putting the bits back together
C++ Production Debugging
Advanced Debugging with WinDbg and SOS
Advanced windows debugging
Who’s afraid of WinDbg
.NET Debugging Workshop
Introduction to .NET Performance Measurement
Crash Dump Analysis 101
Cloud forensics putting the bits back together

What's hot (20)

ODP
Os Cook
PDF
Экспресс-анализ вредоносов / Crowdsourced Malware Triage
PPTX
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
PPTX
Power of linked list
PPTX
You didnt see it’s coming? "Dawn of hardened Windows Kernel"
PPTX
Racing with Droids
PDF
syzkaller: the next gen kernel fuzzer
PDF
How to Root 10 Million Phones with One Exploit
PDF
TriplePlay-WebAppPenTestingTools
PDF
Modern Evasion Techniques
PDF
syzbot and the tale of million kernel bugs
PDF
PDF
JavaCro'15 - Conquer the Internet of Things with Java and Docker - Johan Jans...
PDF
Multiply your Testing Effectiveness with Parameterized Testing, v1
PPTX
How Safe is your Link ?
PPTX
Guardians of your CODE
PDF
Статический анализ кода в контексте SSDL
PDF
When is something overflowing
PPTX
Security research over Windows #defcon china
Os Cook
Экспресс-анализ вредоносов / Crowdsourced Malware Triage
Windows Kernel Exploitation : This Time Font hunt you down in 4 bytes
Power of linked list
You didnt see it’s coming? "Dawn of hardened Windows Kernel"
Racing with Droids
syzkaller: the next gen kernel fuzzer
How to Root 10 Million Phones with One Exploit
TriplePlay-WebAppPenTestingTools
Modern Evasion Techniques
syzbot and the tale of million kernel bugs
JavaCro'15 - Conquer the Internet of Things with Java and Docker - Johan Jans...
Multiply your Testing Effectiveness with Parameterized Testing, v1
How Safe is your Link ?
Guardians of your CODE
Статический анализ кода в контексте SSDL
When is something overflowing
Security research over Windows #defcon china
Ad

Similar to VS Debugging Tricks (20)

PPT
Little Known VC++ Debugging Tricks
PDF
Here Be Dragons – Advanced JavaScript Debugging
PDF
FITC - Here Be Dragons: Advanced JavaScript Debugging
PDF
Common Challenges in DevOps Change Management
PPTX
Best Practices for Building WordPress Applications
PDF
Web a Quebec - JS Debugging
PPTX
Building production websites with Node.js on the Microsoft stack
PPTX
DevOpsDaysRiga 2017: Mandi Walls - Building security into your workflow with ...
PPTX
InSpec Workflow for DevOpsDays Riga 2017
PDF
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
PDF
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
PDF
"You Don't Know NODE.JS" by Hengki Mardongan Sihombing (Urbanhire)
KEY
OSCON 2011 - Node.js Tutorial
PPTX
Using Chef InSpec for Infrastructure Security
PPTX
On non existent 0-days, stable binary exploits and
PDF
Wireless Developing Wireless Monitoring and Control devices
PDF
Stress Free Deployment - Confoo 2011
PPTX
SharePoint 2014: Where to save my data, for devs!
PDF
presentation
PDF
Add-On Development: EE Expects that Every Developer will do his Duty
Little Known VC++ Debugging Tricks
Here Be Dragons – Advanced JavaScript Debugging
FITC - Here Be Dragons: Advanced JavaScript Debugging
Common Challenges in DevOps Change Management
Best Practices for Building WordPress Applications
Web a Quebec - JS Debugging
Building production websites with Node.js on the Microsoft stack
DevOpsDaysRiga 2017: Mandi Walls - Building security into your workflow with ...
InSpec Workflow for DevOpsDays Riga 2017
[HES2013] Virtually secure, analysis to remote root 0day on an industry leadi...
DEF CON 27 - ORANGE TSAI and MEH CHANG - infiltrating corporate intranet like...
"You Don't Know NODE.JS" by Hengki Mardongan Sihombing (Urbanhire)
OSCON 2011 - Node.js Tutorial
Using Chef InSpec for Infrastructure Security
On non existent 0-days, stable binary exploits and
Wireless Developing Wireless Monitoring and Control devices
Stress Free Deployment - Confoo 2011
SharePoint 2014: Where to save my data, for devs!
presentation
Add-On Development: EE Expects that Every Developer will do his Duty
Ad

More from Sasha Goldshtein (20)

PPTX
Modern Linux Tracing Landscape
PPTX
The Next Linux Superpower: eBPF Primer
PPTX
Staring into the eBPF Abyss
PPTX
Visual Studio 2015 and the Next .NET Framework
PPT
Swift: Apple's New Programming Language for iOS and OS X
PPT
C# Everywhere: Cross-Platform Mobile Apps with Xamarin
PPT
Modern Backends for Mobile Apps
PPT
Performance and Debugging with the Diagnostics Hub in Visual Studio 2013
PPT
Mastering IntelliTrace in Development and Production
PPTX
Introduction to RavenDB
PPTX
State of the Platforms
PPTX
Delivering Millions of Push Notifications in Minutes
PPTX
Building Mobile Apps with a Mobile Services .NET Backend
PPTX
Building iOS and Android Apps with Mobile Services
PPT
Task and Data Parallelism
PPT
What's New in C++ 11?
PDF
Attacking Web Applications
PPTX
Windows Azure Mobile Services
PPTX
First Steps in Android Development
PPTX
First Steps in iOS Development
Modern Linux Tracing Landscape
The Next Linux Superpower: eBPF Primer
Staring into the eBPF Abyss
Visual Studio 2015 and the Next .NET Framework
Swift: Apple's New Programming Language for iOS and OS X
C# Everywhere: Cross-Platform Mobile Apps with Xamarin
Modern Backends for Mobile Apps
Performance and Debugging with the Diagnostics Hub in Visual Studio 2013
Mastering IntelliTrace in Development and Production
Introduction to RavenDB
State of the Platforms
Delivering Millions of Push Notifications in Minutes
Building Mobile Apps with a Mobile Services .NET Backend
Building iOS and Android Apps with Mobile Services
Task and Data Parallelism
What's New in C++ 11?
Attacking Web Applications
Windows Azure Mobile Services
First Steps in Android Development
First Steps in iOS Development

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Electronic commerce courselecture one. Pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
Spectroscopy.pptx food analysis technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
NewMind AI Weekly Chronicles - August'25 Week I
Dropbox Q2 2025 Financial Results & Investor Presentation
Network Security Unit 5.pdf for BCA BBA.
Advanced methodologies resolving dimensionality complications for autism neur...
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Unlocking AI with Model Context Protocol (MCP)
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Chapter 3 Spatial Domain Image Processing.pdf
Understanding_Digital_Forensics_Presentation.pptx
Electronic commerce courselecture one. Pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Spectroscopy.pptx food analysis technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
“AI and Expert System Decision Support & Business Intelligence Systems”
20250228 LYD VKU AI Blended-Learning.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf

VS Debugging Tricks

  • 1. Little Known Native Debugging Tricks Ofek Shilon Director of Algorithms @ Sarin Technologies www.thetweaker.wordpress.com
  • 4. VS AS AN INTERPRETER
  • 5. Expression Evaluator • Demo • Scope – Watch, QuickWatch, – Immediate, – BP conditions, ‘when hit’ • Call Functions from the debugger!
  • 6. Expression Evaluator • Context Operator – Documentation is wrong. – Might require decorated names. – VS2010 blocked WIN-API, but eased usage of others. – VS11B supports the simpler syntax msvcr110d.dll!fabs(-8.0f)
  • 7. Expression Evaluator • Thread context • Access insensitive • Blind to inlined functions • Things to try when evaluation fails: – Very explicit casting, – Explicit addresses.
  • 8. Edit and Continue • Demo • Stale code
  • 9. Edit and Continue • Preparation: /ZI, /INCREMENTAL
  • 10. Edit and Continue • Limitations: – Inconsistent with /RELEASE, /OPT:REF, /OPT:ICF, /ORDER, /FORCE, – Does not invoke custom build steps, – Isn’t supported on attached processes, – Can’t change object layout, – Doesn’t regenerate IDL files, – Can’t change resource files, – Does not build static libs.
  • 13. StepOver • VC6: autoexp section [ExecutionControl] • VC7: Reg key - HKCUSoftwareMicrosoftVisualStudio7.0NativeDEStepOver • VC8: HKLMSoftwareMicrosoftVisualStudio8.0NativeDEStepOver • VC10, VC11B: HKCUSoftwareMicrosoftVisualStudio10.0_ConfigNativeDEStepOver Dropped ‘=NoStepInto’ syntax
  • 14. StepOver • Warning! When 2 or more instances of VS are active, occasionally it would create and use a duplicate reg key … and all ’10.0_Config’ modifications would have no effect !
  • 15. StepOver • Credit: Andy Pennell http://blogs.msdn.com/b/andypennell/archive/2004/02/06/69004.aspx • A request to make StepOver official: http://visualstudio.uservoice.com/forums/121579-visual- studio/suggestions/2668765-support-nostepinto-registry-mechanism
  • 16. autoexp • How’s the debugger ‘aware’ of STL containers? • autoexp.dat – By default at %VS folder %Common7PackagesDebugger
  • 17. autoexp • Demo • Specialized syntax for common containers: Array, List, Map, Tree. • Re-parsed on every debugging session • Extremely fragile, yet excellent investment
  • 19. autoexp • Bypass file path via env var: _vcee_autoexp • Bypass visualizer locally: xxx,! • Bypass globally in Tools/Options:
  • 20. autoexp • Resources: – Avery Lee http://virtualdub.org/blog/pivot/entry.php?id=120 – Stephan T. Lavavej BoostCon presentation http://filetolink.com/d/?h=a456fc7fd3d35644edcbe5e764d1ba63&t=1315076450&f=17ad36ef – My blog: complete MFC containers visualization, Matrix 2D visualization, and more www.thetweaker.wordpress.org – A request to make autoexp official: http://visualstudio.uservoice.com/forums/121579-visual- studio/suggestions/2056273-support-debug-visualizers-through- autoexp-dat
  • 21. Sound Alerts • Win7: Control Panel Hardware and Sounds Sound Change system sounds • WinXP: Control Panel Sounds and Audio... Program Events – Microsoft Developer
  • 23. GetLastError Interactively • GetLastError implementation: • (int*)($fs)+0x34 • (int*)($tib)+0x34 • $err ! • Credit: msdn http://msdn.microsoft.com/en-us/library/dtw169z6.aspx
  • 24. Extensions • Customizing ‘,hr’ display in autoexp.dat: • Other TEB data: (_TEB*)$tib
  • 25. Breaking on Errors • BP location: (int*)($tib)+0x34 • Specific error: BP condition – Slooooooooow • g_dwLastErrorToBreakOn ! – (int*){,,ntdll.dll}_g_dwLastErrorToBreakOn – Fails in VC10 over Win7. Restored in VC11B • Credit: Daniel Pearson, http://blogs.msdn.com/b/danpear/archive/2007/04/06/2033100.aspx
  • 27. Breaking on all class methods • Break at function: Class::* • Credit: Habib Heydarian http://blogs.msdn.com/b/habibh/archive/2009/09/10/class-breakpoint- how-to-set-a-breakpoint-on-a-c-class-in-the-visual-studio-debugger.aspx
  • 28. Naming Native Threads • Demo • ‘Documented hack’ Credit: MSDN http://msdn.microsoft.com/en-us/library/xcb2z8hs.aspx
  • 29. Breaking on Data Read • Some code required. • Links to 4 implementations: http://thetweaker.wordpress.com/2011/05/22/breaking-on-data-read/ • Request to make it official: http://visualstudio.uservoice.com/forums/121579-visual- studio/suggestions/2668700-expose-break-on-read-breakpoints
  • 30. Static Object Layout • /d1reportSingleClassLayout • /d1reportAllClassLayout • Credit: Andy Rich http://blogs.msdn.com/b/vcblog/archive/2007/05/17/diagnosing-hidden- odr-violations-in-visual-c-and-fixing-lnk2022.aspx
  • 32. Useful Pseudo-registers • $tid -> very useful as a BP condition. • $env=0 -> view debugee environment variables – In VC11: just $env in watch • $cmdline = 0 -> view launching command line Credit: John Cunningham, http://blogs.msdn.com/b/ms_joc/archive/2004/08/23/218912.aspx
  • 33. Useful Pseudo-registers • $handles -> narrows down handle leaks • $clk -> rough profiling • $user -> view permissions info • Credits: Steve Steiner, Gregg Miskelly, et. al. http://blogs.msdn.com/b/stevejs/ http://blogs.msdn.com/b/greggm/
  • 34. Searching Through Memory • Credit: msdn http://msdn.microsoft.com/en-us/library/ms171363.aspx

Editor's Notes

  • #3: C++התחלות שלא הבשילו בזמןמקור עיקרי – בלוגים של מפתחי VSדברים מאד שימושיים – לחלק שמתי בקשות להפוך לפיצ'רים רשמייםVS2010 / VS2011B
  • #5: Many people think that editing variables is the most they can intervene with the debugeeEdit variables, move execution around
  • #7: אינליין – רלבנטי בRELEASE
  • #9: Break *before* code change, greatly reduces the chance of stale codeUse directX sample!
  • #10: Incremental linking: pads functions code, contains jump thunks to handle function relocationInconsistent with /OPT:REF, /OPT:ICF, /ORDER, /RELEASE, /FORCESome changes are too great, full linking occurs.All options are on by default in debug
  • #14: 2005: for all users
  • #18: comment std::vector רפרוף בסיסי על הסינטקס, רפרנסים טובים בסוףInsert carray childrenCarray previewVect3d preview
  • #20: טוב גם לבדוק שם אם נדמה שלא פועל
  • #21: כשיודעים מה לחפש – מוצאים המון
  • #22: לא מוחבא ברג'יסטרי, יש UI, אבל במקום ממש לא סביר ורחוק מאד מVS עצמוהועף ב2005, הוחזר ב2008 לקול מחאות הציבור
  • #24: Code: ::DeleteFile, GetLastError$fs fakes it...(int*)($fs)+0x18(int*)($tib)+0x34$errFormatting strings:12.3412.34,g$err,hr(_TEB*)$tib
  • #25: HRESULT customization doesn’t even require debugger restart!!_TEB is not defined publically, but the debugger is aware of it. Contains much useful data for advanced scenarios (fiber-specific data, etc)
  • #28: Doesn’t work for templated classes/methodsDoesn’t extend to wildcards/regexGood way to find entry points
  • #29: No ‘name’ slot in TEB
  • #30: Write-to BPs are implemented in hardware – dedicated x86 debug registers.Read-from debugs registers are available too, but were never exposed in VS.Some code required Maybe historical portability constraints? Dunno4 very similar implementations
  • #31: Not investigating code *flow* - static feature.After /d1reportSingleClassLayout, type immediatelly your classTest: /d1reportSingleClassLayoutCDialog . show vftable, alignment, adjustorsDebug ODR violationsOptimize storageGain deep insightSince VS2010, collides with /showIncludes (?)Watch out for PCH – if your class definition isn’t compiled, its layout won’t be shown
  • #33: $cmdline credit: John Cunningham, http://blogs.msdn.com/b/ms_joc/archive/2004/08/23/218912.aspx$env=0 no longer works in VS2010
  • #35: Demo – on envvars.S -U 0x006fdad0 60 "ALLUSERSPROFILE"שימושי בדיבוג של דמפים מלאים