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
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
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
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
C++התחלות שלא הבשילו בזמןמקור עיקרי – בלוגים של מפתחי VSדברים מאד שימושיים – לחלק שמתי בקשות להפוך לפיצ'רים רשמייםVS2010 / VS2011B
Many people think that editing variables is the most they can intervene with the debugeeEdit variables, move execution around
אינליין – רלבנטי בRELEASE
Break *before* code change, greatly reduces the chance of stale codeUse directX sample!
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
2005: for all users
comment std::vector רפרוף בסיסי על הסינטקס, רפרנסים טובים בסוףInsert carray childrenCarray previewVect3d preview
טוב גם לבדוק שם אם נדמה שלא פועל
כשיודעים מה לחפש – מוצאים המון
לא מוחבא ברג'יסטרי, יש UI, אבל במקום ממש לא סביר ורחוק מאד מVS עצמוהועף ב2005, הוחזר ב2008 לקול מחאות הציבור
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)
Doesn’t work for templated classes/methodsDoesn’t extend to wildcards/regexGood way to find entry points
No ‘name’ slot in TEB
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
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
$cmdline credit: John Cunningham, http://blogs.msdn.com/b/ms_joc/archive/2004/08/23/218912.aspx$env=0 no longer works in VS2010
Demo – on envvars.S -U 0x006fdad0 60 "ALLUSERSPROFILE"שימושי בדיבוג של דמפים מלאים