Welcome to MSDN Blogs Sign in | Join | Help

Browse by Tags

All Tags » Bugs » Visual Studio   (RSS)

Simple VS Addin (updated)

Back during the PDC for Whidbey I wrote a post about Creating a Simple Addin . Recently I was looking to update it and found a horrible bug in it. First, here is the corrected code: public void OnConnection( object application, ext_ConnectMode connectMode,
Posted by SteveJS | 2 Comments
Filed under: , ,

Naming threads in Win32 And .Net

When you are debugging an application with multiple threads it can be handy to have a better name than just the thread id. This is simple to do in managed code. There is a property on the Thread object that you can set. It is also possible to do this
Posted by SteveJS | 7 Comments
Filed under: , ,

FuncEvil, the Clipboard, and Deadlocks

Mike Stall has a great post that, for a debugger dev, is the moral equivalent of sticking a fork in a toaster. The basic problem he addresses is that once you are stopped in the debugger the UI for your application will no longer paint. What if you need
Posted by SteveJS | 3 Comments
Filed under: , ,

Change Debugger behavior with Attributes

Certain metadata attributes modify the stepping, breakpoint, and callstack behavior of the VS managed Debugger. This is useful if you are creating an interpreter, language runtime, or a tool that modifies the code in a managed assembly. There are three
Posted by SteveJS | 0 Comments
Filed under: , ,

Netmodules: Sort of like a lib

I first ran into netmodules before VS 2002 was shipped. The netmodule gave me precisely what I asked for, without actually solving my problem. I wanted to use multiple languages (C#, and C++ /clr) in a single assembly. It turns out a single assembly can
Posted by SteveJS | 1 Comments
Filed under: , ,

XSLT debugging in Visual Studio

Visual Studio is a big tool. It's easy to miss some useful features. Hopefully t he XSLT debugger won't get missed. If you want to learn how to use XSLT debugging take a look at Neetu Rajpal's msdn article Introducing Xml tools in VS 2005 . Below you
Posted by SteveJS | 2 Comments
Filed under: ,

Checking the result of new is a bug in C++

At least, it is a bug in VC8. That check won't happen. Reading Larry Osterman's recent posts "What's wrong with this code, part 15" and the answers , reminded me this behavior changed in VC8. If you check the result of new in code compiled with VC8, your
Posted by SteveJS | 3 Comments
Filed under: ,

PsuedoVariables and Format Specifiers

The VS debugger has a history of tiny but useful features hidden in the expression evaluator. These features are like the yellow shirted ensign in star trek. They are useful, but unknown and expendable. Developer's learn about them by attending a Power
Posted by SteveJS | 3 Comments
Filed under: ,

$env=0

Winning the award for the least understandable UI metaphor: the ability to view the environment variables in the target when native debugging. This is yet another tiny undocumented feature of the native expression evaluator in VS. $env falls under the
Posted by SteveJS | 2 Comments
Filed under: ,

Assembly language survival guide (for Debugging ... not writing)

Knowing just enough assembly is a really powerful aid in Debugging. These are short articles that hit the sweet spot of enough information to be very useful, but not so much that it is a chore to learn: Matt's Just Enough Assembly Language to Get By:
Posted by SteveJS | 0 Comments
Filed under: ,

Devenv stealth feature, Poor Man's Profiler

This feature is unsupported. It is undocumented. If you call help desk about it nice people will say “huh?” If it breaks, people will nod knowingly and say “I told you so”. In later versions it may simply disappear. It could decay right now as I speak
Posted by SteveJS | 1 Comments
Filed under: ,

Edit & Continue trick for Conditional Bps

Using Edit and Continue to fix a bug is handy, but don't wait until you've found the bug to start editing. One powerful technique is to use E&C when you are still trying to find the problem. Edit and Continue allows you to make any conditional bp
Posted by SteveJS | 0 Comments
Filed under: ,

Use the symbol server

Below you see the sad state of affairs that comes from not using the public symbol server: This is not the callstack you want to see. With only exports loaded for ntdll.dll you are missing the whole show. What you need is the public symbol server! (Don't
Posted by SteveJS | 4 Comments
Filed under: ,

Unmanaged Debugging vs. Managed Debugging vs. Mixed Debugging.

All versions of VS support debugging both managed and unmanaged code. However there is a big difference between doing one or the other and doing both. GreggM has written about some of the reasons interop debugging is difficult . Here I will refer to debugging
Posted by SteveJS | 133 Comments
Filed under: ,

Proactive vs Reactive tools: Evaluating Properties

Proactive vs Reactive tools: Prop Eval One core principle for a debugger is that it should affect your program as little as possible. The reason is pretty straightforward. If your program runs differently under the debugger, the problem you are trying
Posted by SteveJS | 10 Comments
Filed under: ,
 
Page view tracker