This is a list of my favourite tools that I use frequently when developing and debugging software on Windows.
- Visual Studio 2010 - Even though it got some performance problems sometimes (Got better with SP1, but still some problems) I do find It to be the best IDE there for Windows Development.
- Visual Assist - This Is a Visual Studio plugin that i should not live without. If I'm working in Visual Studio on a computer without Visual Assist I'm totally lost. I been using this since Visual Studio 6. Unfortunately this tool is not free and the price has gone up a bit much since the Visual Studio 6 days.
But it can be worth it since you will be more productive in your work. They have a 30 day trial but do not try that if you know you can afford it. Because when you got used to it, you will not want to go back and use Visual Studio without it.
- TortoiseSVN - is a shell extension that will integrate subversion client task direktly into Windows.
It will however integrate with Visual Studio.
- AnkhSVN - Is a plugin for Visual Studio that will give you SVN Integation into Visual Studio. But will not give you the shell extension support that TortoiseSVN do. But you can have both of them installed.
Most of this debugging tools are for native windows applications since it is where i spend most of my time at.
- Windows Debugging Tools
Is really i must if you are analyzing dump files. Even do Visual Studio can open dump file windbg will give you so mush more power. and WinDbg is a create debugger that are lightwaight that you can install on a customer machine with minimal impact if you need to debug a problem at a customer site.
- Debug Diag
Is a great program that can track the applications memory usage. And It can also be used to create a full user dump of a process if you need a complete dump file for analazye.For example if you are tracking memory leaks.
- Process Monitor
If you need to investigate what files/registry entires are written or read or why they failes.
- Process Explorer
Investigate handles and dlls used by a process, How much memory and what typ a process is using.
- Dependency Walker - is a utility that scan Windows modules (exe, dll,ocx,sys, etc) and build a tree of all dependent modules. This is a good tool to use to find out what dependency a dll, exe has. It will however not resolve dll that will be loaded dynamically by the modules
Another tool from Sysinternals. If you want to output debug text into the output windows in Visual Studio you can use the OutputDebugString or DbgPrint (kernel) API.
But if you need to debug a problem on a customers machine you do not want to install the visual studio there just to be able to view the OutputDebugString logging. This is where DebugView comes in. It is small and require no installation. Just copy the DebugView.exe to the customers machines and it will catch all the OutputDebugString call that the program are doing. There is a small performance penalty in logging to OutputDebugString so you should not do it unless you activate a switch in your program or gives you customer a special dbg build.
- VA View
VA View is a program that let you watch the layout of the virtual memory of a program graphically using a full user dump.
This is good if you have memory problems what need to find what the large free block you have or memory fragmentation problems. You can see where dll and program are located in the memory and you can also what the raw data at memory locations.
Problem is that this program never got release. As I understand it this program was developed by a guy that is/was working at microsoft. But he never release it. It is a little buggy and it required .net 1.0 but it works.
Since it is not release I can not link to a project website. But This french msdn blog has a download link for it.
This a a tool from sysinternals that are similar to VA View , But it will show the memory layout of a running process instead of a dump file, It is a okay alternative if you do not find VA View. I do find VA View more useful sometimes and you get a better overview of the memory. But VAMap can do so much more like filtering, show differences from snapshots. (Good when looking for memory leaks)
- Multi Commander - Is a dual-panel file manager that uses the look and feel of the old Norton Commander.
There are many similar commander style file manager out there but i prefers MultiCommander.
It support zip, rar, bz,tar ,gz, ... archives and ftp and a lot more. It replacing many tool with one.
The file viewer is very good for watching logfiles since it support highlighting and it can view files of any size with ease.
Ohh I almost forgot abourt the most important thing, Multi Commander is created by me. It is my main personal project i work on when i got some spare time to kill. So yes I'm a bit bias when it comes to this one.
Last updated : 2011-04-18