While we strive to become highly efficient debuggers it is also worth taking a look at some tools that can help us avoid the debuggers to begin with. In this course, we look at Static Source Code Analysis of Visual Studio 2012, Introduction to Debugging Windows 8 applications, the all new JSCRIPT Memory Analysis feature of Visual Studio 2012 Update 1 as well as x64 debugging.
x64 Debugging Hi, and welcome to this module called 64bit Debugging, where we'll take a look at some of the interesting aspects of using the debugging tools for Windows, i. e. WinDbg, when we debug 64bit apps. And, most of the time, we don't really have to worry about the difference between x86 and x64 when it comes to debugging, primarily because we have a set of really powerful tools; in the form of debugger commands, that kind of abstract that bitness away from you. So, for example, if I'm running the bang DumpHeap command, which will show me all of the managed objects on the managed heap, it doesn't really much matter if it's 64 bit or 32 bit, for the most part, but there are times, especially with native co-development, where it's important to understand the differences. For example, when we disassemble code, trying to figure out how that particular code ended up in the state that it is, it's important to understand, for example, what is the x64 calling convention, and how does it work? Sometimes, depending on if your app is optimized or how it's optimized, you can't necessarily always trust what the debugger is telling you. And, when you run into those scenarios, it's really important to have that background information of how things work, so that you can make your own decisions based upon what you see in the, in the debugger. And, like I mentioned, the focus for this module is on the low level debuggers and the debugging tools for Windows package.