The Curious Engineer

All blogs / C# / .NET

Mike Stall's .NET Debugging Blog

learn.microsoft.com/en-us/archive/blogs/jmstall

Notes on Managed Debugging, ICorDebug, and random .NET stuff

C# / .NETDev tools / editors / IDEsMicrosoft blogsMSDN archive

’05’10’15’20’25
Posts
426 from 30 Sep 2004 to 19 Jun 2014
Posting
archived, read-only
Kind
personal blog
Feed
https://learn.microsoft.com/en-us/archive/blogs/jmstall/feed.xml

2014 9

  1. Webjobs SDK Beta is released
  2. Azure Storage Naming Rules
  3. Hosting interactive code in the Cloud
  4. How does [BlobInput] work?
  5. Azure Storage Bindings Part 3 – Tables
  6. Who wrote that blob?
  7. Azure Storage Bindings Part 2 – Queues
  8. Azure Storage Bindings Part 1 – Blobs
  9. Trigger, Bindings, and Route parameters in AzureJobs

2013 3

  1. Hackathon tools
  2. $5000 in prizes at upcoming Hackathon
  3. AttributeUsage.Inherited flag

2012 10

  1. Reflection vs. Metadata
  2. Converting between Azure Tables and CSV
  3. Strong binding for CSV reader
  4. Per-controller configuration in WebAPI
  5. Excel on Azure
  6. How to create a custom value provider in WebAPI
  7. How to bind to custom objects in action signatures in MVC/WebAPI
  8. MVC Style parameter binding for WebAPI
  9. How WebAPI does Parameter Binding
  10. ASP.Net WebAPI

2011 2

  1. Pyvot for Excel
  2. Python Tools for VS

2010 1

  1. Windows Phone 7

2009 5

  1. Speaking at Lake County .NET User’s Group
  2. Writing a CLR Debugger in Python
  3. ICustomQueryInterface and CLR V4
  4. Virtual code execution via IL interpretation
  5. MVP Summit 2009

2008 23

  1. Managed Dump debugging support for Visual Studio and ICorDebug
  2. Updated MSDN forums
  3. Stuff in Reflection that's not in Metadata
  4. Nice MSDN URLs
  5. The price of complexity
  6. Codegen for On Error Resume Next
  7. The waiting game
  8. Understand the end-to-end scenarios
  9. Arguing by-example vs. by-principle
  10. Things in Metadata that are missing in Reflection
  11. Binary vs. Source compatibility
  12. Do you compile XML to IL?
  13. Why are you caching data?
  14. Why threading is hard
  15. Quiz: can you count how many combinations ...
  16. Lang.Net 2008 is coming
  17. Battle Simulation: size vs. smarts (part 3)
  18. Battle Simulations with Iron Python (part 2)
  19. Partial Classes and future-proof vindication
  20. An extra 1 gig of memory works wonders...
  21. Zune's killer feature
  22. "Managed Humans" by Michael Lopp
  23. RTS Battle simulation with IronPython

2007 87

  1. Interview tip: what's the real question
  2. It never works
  3. Merry Christmas!
  4. Grocery stores and cyclical dependency graphs
  5. Return vs. Finally (2)
  6. Real Time Strategy game for Silverlight
  7. Debuggability tops MSBuild feature poll
  8. Stateless card dealing
  9. "This statement is false"
  10. Learning Python
  11. Don't expect customers to always run your app under a debugger
  12. Why is System.Diagnostic.Debugger class compiled in retail?
  13. How to add Options to Live Writer PlugIns
  14. WiX Script for installing Live Writer Plugins
  15. Simple Tool for text substitution plus Design questions
  16. Breaking changes in ICorDebug from 1.1 to 2.0.
  17. Paste-From-Console Live Writer PlugIn
  18. Transitioning off the CLR
  19. Trivia about the [Conditional] attribute
  20. Quiz: What runs before Main()?
  21. My daughter, the QA tester
  22. How to tell if a function is managed code?
  23. The debugger is not just an extension to BCL + Reflection
  24. 3 years!
  25. Why debugging breaks in optimized (production) builds.
  26. Debugger.Break()
  27. ICorDebugFunction is 1:1 with the IL
  28. "Drawn to Life" and framework design
  29. What I'm reading now: 50 Rules Kids Won't Learn in School
  30. (A==B)==(X==Y)
  31. Paradigms around Debugging Memory leaks
  32. Foreach codegen
  33. Feature Parity vs. Scenario Parity
  34. ICorPublish does not cross the 32/64 bit boundary
  35. What I'm reading now: Showstoppers
  36. Indirection is funny
  37. My first LiveWriter PlugIn is posted to the gallery
  38. Unit tests for a simple OnMoved event handler
  39. Updating my sample for the Silverlight Refresh
  40. Updating Visual Studio for the Silverlight 1.1 Refresh
  41. Why is there a separate 'debug pack' for Silverlight?
  42. Setting transparency in an image
  43. Making "Required properties" less annoying
  44. My first (non-trivial) Windows Live Writer Plugin
  45. 68+ "Visual Studio 2008 beta 2 is released" blog entries in 24 hours.
  46. Safety by Accident
  47. A 30x speed improvement
  48. JScript vs. Nintendo DS
  49. Debugger and Versioning link fest
  50. What can I use to debug VC2002 Managed C++ apps?
  51. Which is worse?
  52. Optimize for Simplicity
  53. Test what you Ship, Debug what you Test
  54. Answer to Number puzzle
  55. Number puzzle
  56. Out of office
  57. Silverlight and CLR enumeration
  58. Techniques for Debugging IL
  59. Debugger talk at Compiler Lab
  60. My first Silverlight 1.1 app
  61. Non-deterministic Searching blogs
  62. Silverlight 1.1 Alpha
  63. Debugger and Versioning
  64. Sometimes it's better to just not think about it
  65. Myers-Briggs
  66. Finally, a computer I can beat at chess
  67. TypeDef vs. TypeRef
  68. Describing Types in .NET
  69. Func-eval abort is evil
  70. Using Windows live Writer
  71. "Why are you picking off the olives?"
  72. Building and Debugging Powershell cmdlets in the VS IDE
  73. Some tips for P/invoke
  74. Ratio between Managed and Native Modules
  75. 'throw e;' vs. 'throw;'
  76. Making Catch, Rethrow more debuggable.
  77. Catch, Rethrow, and Debuggability
  78. Sample code for copying Html to Clipboard
  79. Copying HTML on the clipboard
  80. Image Header vs. File Timestamps.
  81. UpdateModuleSysmbols comes on attach
  82. Tips for writing an Interop Debugger
  83. #ifdef usage in Rotor
  84. Does C# intellisense read you mind?
  85. You don't want to write an interop debugger.
  86. I've been tagged.
  87. Type-safe Managed wrappers for kernel32!GetProcAddress

2006 126

  1. Fake attach event ordering
  2. C# app to count #ifdef usage
  3. Embed Macros in Help?
  4. Measuring language complexity: Do you need a debugger?
  5. Your feedback: How many types do you ref.emit into a module?
  6. Interview Tip: Writing test cases
  7. What I'm reading now: "C++ Template Metaprogramming"
  8. Patrick Dussud is blogging!
  9. Random comments about Sytem.Convert class
  10. Table of Cool .NET Tools
  11. Marshal opaque structs as IntPtr instead of Byte[]
  12. Creative usage
  13. AppDomain.ProcessExit is not guaranteed to be called
  14. Mdbg (C# debugger in C#) source sample updated
  15. Thoughts on Vista from a non-computer person
  16. Viewing types with Reflection-Only
  17. Hit 300 mark
  18. LCG + Debuggability, and your feedback
  19. Rename Mdbg forum to "Building Development and Diagnostic Tools for .Net"
  20. Binary Patching tools (mspatcha, mspatchc)
  21. The Tester's dilemma: proving you can count to a million
  22. Unit testing databases
  23. Writing an RTF to HTML converter, posting code in blogs.
  24. Using Foo<T>(...) instead of Foo(System.Type, ...)
  25. GCHandle.ToIntPtr vs. GCHandle.AddrOfPinnedObject
  26. Pop quiz: Who wins in finally vs. return?:
  27. Debugging Ngen code
  28. ICorDebugValue vs. System.Object
  29. Using CreateRemoteThread from C#
  30. Sample code for CreateRemoteThread in C#.
  31. How to start a console app in a new window, the parent's window, or no window
  32. What I learned this morning...
  33. My baby, the finite state machine.
  34. LoadClass events are usually meaningless
  35. Iron Python 1.0 is released
  36. How can you force clients to use your APIs properly?
  37. An example of an API versioning problem.
  38. Fixing the MDbg / Iron Python extension...
  39. Asking questions on the forums
  40. Cool tool: NDepend
  41. Empty implementation of ICorDebugManagedCallback
  42. Lessons from political bloggers
  43. Upcoming compiler lab
  44. MDbg / ICorDebug forum is now available!
  45. Caveats about managed JIT-debugging
  46. Resolving functions and func-eval syntax
  47. You can't cast from a pointer to a managed object in the debugger
  48. Coffee and the L2 Cache
  49. #line hidden vs. DebuggerNonUserCode attribute
  50. Experiences with FxCop and wrapping the native debug API
  51. Conventions for passing the arguments to a process
  52. Working on managed wrappers for Native Debugging API
  53. Managed vs. Native debugging APIs
  54. Debugger.Log vs. OutputDebugString
  55. Debugger won't properly evaluate C#s base keyword
  56. How to build Mdbg apps
  57. Rant: Xml is Code
  58. Random ICorDebug trivia about debugging AppDomains
  59. Source posted for snapshot tool
  60. Sample code for snapshot tool
  61. Thomas Lai is now blogging!
  62. Saved by the blog
  63. Random thoughts on Bill G transition plans
  64. MSDN Wiki
  65. Managed Stack Explorer
  66. Enc APIs aren't exposed through reflection
  67. Using a Profiler for inspection
  68. Felice Pollano: Integrating a debugger into Reflector
  69. Is "Module Breakpoint" ambiguous?
  70. Practical MDAs in MSDN magazine
  71. Some practice interview questions
  72. How did I ever live without it?
  73. Getting answers to questions
  74. Dbg vs. Pdb files
  75. Stop the debuggee to poke at it
  76. The stop count and trivia
  77. Trivia about Set-next-Statement (SetIp)
  78. What to expect when you Attach, Async-Break
  79. "Correct" may depend on your point of view
  80. Looking forward to the day when free wireless is just a given
  81. Competing with the docs:
  82. Put a config file on your debuggers
  83. Why doesn't MDbg use generics?
  84. What I'm reading now (Practical .NET2 and C#2)
  85. The JIT does dead-code elimination in Debuggable code
  86. Being a CLR dev does not mean you know everything about the CLR
  87. Passing env vars to the debuggee
  88. Chatting about debugging?
  89. Is this a good or bad?
  90. New CLR blogger: Vance Morrison
  91. Doing Detach with ICorDebug
  92. Jan is on MSDN TV talking about MDbg
  93. MDbg, Managed-debugging, and 64 bit
  94. "You can't have too much chocolate"
  95. What does a debugger author need to do to support func-eval?
  96. Why don't the managed Debugging APIs expose the Finalizer thread?
  97. Feedback on debugging optimized (managed) code?
  98. Why can't you detach in interop-debugging?
  99. The cost of context switching
  100. Modules vs. Assemblies from the managed debugger's perspective
  101. IFEO and Managed-debugging
  102. Sample Mdbg extension
  103. Living with the consequences.
  104. TV Reruns (past the 200 mark)
  105. ICorDebug failure codes
  106. About CORDBG_E_OBJECT_NEUTERED
  107. Design Implications from boring details
  108. Impossible vs. Insufficiently Clever
  109. Viewing the current Exception in the debuggeer
  110. Random ICorDebugThread trivia
  111. Fun with yield, generics, and foreach
  112. MDbg UI Threading, round 2
  113. You can't do Edit-and-Continue with Interop-debugging on.
  114. When More is less
  115. Mdbg IronPython Extension updated for Beta 1
  116. Multiple steppers on 1 thread and other trivia
  117. Oh, yeah!
  118. Sudoku Solver and Omniscient debugging
  119. XML Diff Tool
  120. Click Once rocks.
  121. You need Source Files to do source-level debugging
  122. Trivial RSS Writer
  123. Writing colorized text to RichTextBox
  124. Debugabbility with Roundtripping Assemblies
  125. Partition of ICorDebug
  126. Happy New Year!

2005 139

  1. Do you want to work on the CLR?
  2. Merry Christmas!
  3. A SymWriter sample is coming...
  4. Check out CLR Profiler 2.0
  5. Source Control for 1
  6. Don't rewrite opcodes in managed code.
  7. Using MC++ to wrap ICorDebug for .NET 1.1
  8. Christmas blog decorations!
  9. Evil trick to render UI when stopped at a breakpoint.
  10. &quot;Visual Studio 2003 Mixed Mode Debugging Crash&quot;
  11. MDbg sample is updated for VS2005 RTM
  12. VS 2003 can not debug .NET 2.0 apps.
  13. Tool to get snapshot of managed callstacks
  14. Blog Category for Func-eval
  15. Poor Man's Radio
  16. Use streams to simplify Stitching problems
  17. What I'm reading now...
  18. Only 1 checkin in 4 months?
  19. Updated MDbg GUI
  20. Rules of Funceval
  21. Presentation on AOP + Debuggability
  22. Why you sometimes get a bogus ContextSwitchDeadLock MDA under the debugger
  23. Managed Debug Assistants (MDAs) are cool.
  24. AOP and Debuggability
  25. MDbg Linkfest
  26. Summary of the role of MDbg and Cordbg
  27. New toys
  28. Our policy on policy
  29. Using Funceval to Inject code into another app
  30. BCL's Stacktrace doesn't capture locals.
  31. You can't debug yourself
  32. MDbg extension to debug IL
  33. Small changes can prevent optimizations.
  34. VS2005 ships!
  35. Do printer manufacturers do any scenario testing?
  36. Update to Iron Python MDbg sample.
  37. Informal poll on debugger feature requests?
  38. Big picture on Symbol APIs
  39. .Net / ASP.Net Developers: check out Tim's blog
  40. Native threads still run at a managed breakpoint.
  41. Debugging support for ASP.Net
  42. Viewing Exception Message string
  43. Remote Debugging vs. Remote UI
  44. It's been a year
  45. I'm caught up!
  46. Symbol API (CorSym.idl) for managed PDBs
  47. Enable vs. Implement
  48. Debugger.Log and LogMessage
  49. Compiling a language to C#
  50. Having debugger-friendly codegen
  51. MDbg Sample temporarily broken in post-beta 2 builds.
  52. F5 vs. Ctrl-F5
  53. Process X can't tell if Process Y is being managed debugged.
  54. Going from IL to Source
  55. ICorDebug reentrancy
  56. Types of Names
  57. Out-of-band events and Mixed-mode debugging
  58. IL offset 0 vs. Native offset 0
  59. MC++ / IJW codegen for Native structures in IL
  60. Managed C++ codegen for new, array manipulation, delete
  61. How can I tell if I'm interop-debugging?
  62. How to embed IronPython script support in your existing app in 10 easy steps
  63. Adding IronPython scripting engine to Mdbg
  64. Sample Python script for Mdbg-Python extension
  65. Sample code for MDbg-IronPython extension
  66. The importance of fortifying your subsystems.
  67. What's on my blog-todo list.
  68. Sample code for PDB 2 XML tool
  69. ICorDebugStepper and using ICorDebugStepper2::SetJMC
  70. Size of Visual Studio
  71. Sample code for Plagiarism Searcher tool
  72. Using the clipboard as input for console tools.
  73. Sample code to execute MSN searches from C#
  74. Tool to catch plagiarism
  75. Why <font> is bad and easy intro for Cascading Style Sheets
  76. Auto-attach to child process is not supported in managed-debugging
  77. How should a generic method be displayed?
  78. Nesting C#'s yield
  79. MDbg Sample is updated for Beta 2 and RTM
  80. You can't get a mixed-mode callstack from inprocess.
  81. Harness that Attach instead of Launch
  82. TextReader based off C# Yield
  83. On why C#'s "abstract-override" is so cool:
  84. Jonathan Keljo has started a blog!
  85. More caveats about #line
  86. What my dog taught me about race conditions
  87. Simple example of an API design flaw.
  88. Correction: you can't reasonably instantiate your own ICorDebug
  89. Simple harness to print exceptions in an app
  90. Using ICorDebugProcess::HasQueuedCallbacks
  91. Debug support for arbitrary state-machines
  92. Source-level step-in is not well defined.
  93. My wish: CLR as gaming scripting engine for Civilization
  94. Problem with .maxstack in IL-roundtripping tools
  95. A common problem: forgetting to call ICorDebugAppDomain::Attach
  96. It's been a while
  97. How to do a source-level step (eg, F10)
  98. Interop-stepping is 400 times faster in Whidbey over Everett
  99. #line hidden and 0xFeeFee sequence points
  100. MSDN feedback rocks.
  101. ICorDebug is coming to MSDN…
  102. Updating MDbg GUI for Beta 2
  103. Mdbgcore.dll and linking IL
  104. How _not_ to organize your mail
  105. Please send Watson Error Reports when an app crashes!
  106. Roger Wolff on Implementing ICorDebug for TinyCLR
  107. Quiz: What's wrong with this code?
  108. MDbg and Beta 2
  109. A step backwards
  110. Feedback on the ICorDebug API?
  111. MS Blog Sites have upgraded to Community Server
  112. C# and Equals() in V2.0 versus V1.0.
  113. Caveats about System.Diagnostics.StackTrace
  114. Why you can’t debug mscorwks when interop-debugging
  115. Clearly Document Object Lifespans
  116. Quiz about Object.Equals()
  117. Answers to C# Equality quiz
  118. Quiz about C# and object equality.
  119. Managed Debugging doesn’t support Fibers
  120. Don’t do “complicated” work in Release().
  121. Debugging any .Net language
  122. Tool to allow inline IL in C# / VB.Net
  123. 3rd-parties and Edit And Continue (Part 2: Debuggers)
  124. 3rd-parties and Edit-and-Continue (Part 1: Editors + Compilers)
  125. Rick Byers has started a blog!
  126. Easily passing Managed strings to Unmanaged code (round 2)
  127. Hardmode vs. Softmode
  128. Compiler Lab Results
  129. Source for a C# compiler written in pure C#.
  130. Source is available for MDbg Winforms GUI!
  131. Why you can’t do Edit-and-Continue on Dynamically generated code
  132. Debugging Dynamically Generated Code (Reflection.Emit)
  133. Implementing ICorDebug to reuse existing debuggers?
  134. What is Interop-Debugging?
  135. Finding where unmanaged exceptions came from
  136. How to get a V2.0 ICorDebug object
  137. Code Gen flags while Debugging
  138. Object Identity in Managed Debugging
  139. What's new in v2.0 CLR Debugging (ICorDebug)?

2004 21

  1. How can I debug Just My Code?
  2. How do Managed Breakpoints work?
  3. You can’t attach 2 debuggers to 1 process
  4. Enumerating Managed Processes
  5. Sample app to print loaded modules.
  6. Winforms gui on top of Managed debugger sample.
  7. Problems for a managed debugger for v1.1?
  8. Using metadata interfaces from managed code
  9. David Notario, JIT guru, is blogging
  10. CLR Debugging vs. CLR Profiling
  11. Standardizing ICorDebug?
  12. ICorDebug, Edit-and-Continue, and C#
  13. Why is managed debugging different than native-debugging?
  14. We need your feedback on the fate of Cordbg.exe
  15. How can I use ICorDebug?
  16. Debugging IL
  17. "Rocket Science" API?
  18. Debuggers aren't supposed to change behavior
  19. Getting your feedback!
  20. Managed Debugger Sample
  21. Introductions, ICorDebug + CLR Debugging Services