Browse by Tags

Tagged Content List
  • Blog Post: Quick Tip: Debugging Smart Device Unit Tests

    While browsing MSDN today, I came upon a handy article that I wanted to share.   Titled 'How to: Debug while Running a Smart Device Unit Test ', it provides step by step instructions on debugging your test projects. There is one additional step I would like to add to those listed in the article...
  • Blog Post: What is a Side Effect?

    We've all heard the commercials or read the prescription information sheets describing the possible side effects of medications. The side effects described are typically negative (ex: upset stomach). There are other side effects of a more positive nature; a medication helping treat an illness that it...
  • Blog Post: Command Line Debugging Revisited - Part 6: IL Debugging Commands

    Dan Elliott recently posted about the IL OpCodes supported by the .NET Compact Framework . This got me inspired to talk about the IL debugging commands in the .NET Compact Framework MDbg extension (mdbgnetcf.dll). Commands dis[assemble] in[ext] is[tep] o[ut] As with the previous installments of this...
  • Blog Post: Command Line Debugging Revisited - Part 5: The X Command

    In the previous installment, I talked about attaching to running processes using MDbg . As part of that discussion, I used the X command. Today, I'd like to spend a little time on X . The X command is one of those great features of MDbg that I think is worth the price of admission by itself. From MDbg...
  • Blog Post: Using the .NET Compact Framework Remote Performance Monitor to Configure Diagnostic Options

    Diagnostic, performance and debugging tools are very cool. The more tools available, the easier it tends to be to find and fix application issues. With Visual Studio 2005, several handy tools were added. I use the Remote Registry Editor and Remote File Viewer just about every day. Version 2 of the .NET...
  • Blog Post: Command Line Debugging Revisited - Part 4: Attaching to Processes

    Being able to attach to a running process is a very powerful debugger feature. It is especially handy when the application is in the field. With the CorDbg debugger, formal attach to process support was not available when debugging .NET Compact Framework applications. Using the .NET Compact Framework...
  • Blog Post: The Error Log: A New Diagnostic in .NET Compact Framework v2 Service Pack 1

    The recent release of Service Pack 1 for the .NET Compact Framework version 2 has added some very useful diagnostic tools. You may have already read about the .NET Compact Framework Remote Performance Monitor , and have hopefully used it to analyze the performance characteristics of your applications...
  • Blog Post: Command Line Debugging Revisited - Part 3: Process Control

    In the previous parts of this series, I talked about getting started with MDbg and using the Device Emulator . Today, I would like to talk about how to use MDbg to control processes on the device being debugged. Commands cp[roc] kp[roc] pro[cessenum] The cp[roc] command - Running a process without attaching...
  • Blog Post: Command Line Debugging Revisited - Part 2: The Device Emulator

    The Visual Studio 2005 Device Emulator is a very cool tool for developing, testing and debugging Windows Mobile applications. You can design for and run on the wide variety of Windows Mobile devices. In addition, you can install and use the localized images , to run your applications on international...
  • Blog Post: Command Line Debugging Revisited - Part 1: Getting started with MDbg and .NET Compact Framework Version 2 Service Pack 1

    It's been a while since I last wrote about using the command line debugger (cordbg) with the .NET Compact Framework. Quite a bit has changed in the world of .NET Compact Framework command line debugging since that time. With the release, last year, of version 2 of the .NET Framework SDK, a new command...
  • Blog Post: MEDC 2006 Update: What went wrong in the debugging demo during APP326?

    Ever since I finished my MEDC 2006 presentation (APP326 - Essential Tips and Tricks for .NET Compact Framework Application Developers), I have been bothered by the fact that one of my demos did not work 100% as I had designed and practiced. During the demo of debugging a P/Invoke call (based on this...
  • Blog Post: The Importance of Debugger Symbols: or Reloading Symbols while Debugging

    Have you ever attached to a managed application and been greeted with the following message ... No symbols are loaded for any call stack frame. The source code cannot be displayed. ... and found that breakpoints could not be set, or that single step attempts cause the application to run to completion...
  • Blog Post: Using the Interop Log to Diagnose P/Invoke Call Issues

    Sometimes, determining why an unmanaged function call (P/Invoke) has failed can be challenging. Fortunately, version 2 of the .NET Compact Framework has a new diagnostic log for this data -- the Interop Log. In June 2005, Steven Pratschner wrote a great post detailing the Inteop Log and it's contents...
  • Blog Post: Diagnosing MissingMethodExceptions and TypeLoadExceptions using the Loader Log

    Have you ever encountered a MissingMethodException or TypeLoadException when starting a .NET Compact Framework application? If you are running version 2 of the .NET Compact Framework, the Loader Log can help identify the source of the exception. For detailed information regarding the Loader Log, please...
  • Blog Post: What is a Race Condition?

    I've been posting a bit, lately, on debugging multi-threaded applications. When talking about deadlocks , I mentioned that I was adding a Sleep statement to ensure that I hit the deadlock issue. The reason that I needed to force the deadlock was that, depending on timing, the code could either work,...
  • Blog Post: Debugging Multi-Threaded Applications III - Thread Specific Breakpoints

    As mentioned in my first post in this series, debugging multi-threaded applications can be challenging. This installment talks about how to determine which of your application's threads are calling potentially threading sensitive methods. Using Visual Studio 2005, setting thread specific breakpoints...
  • Blog Post: Debugging Multi-Threaded Applications II - Setting A Thread's Name Using The Debugger

    Naming your application's threads can make debugging multi-threaded applications quite a bit simpler, especially if you have more than a couple of threads. Thread names can be set in code as shown below: // set the current thread's name Thread.CurrentThread.Name = "UserInterfaceThread"; // create several...
  • Blog Post: Debugging Multi-Threaded Applications I - Deadlocks

    Multi-threaded code can be challenging to write and debug. Today, I'd like to spend some time talking about one of the most common issues when writing multi-threaded code... deadlocks. Example deadlock To begin, let's examine an example of the "classic" deadlock -- using synchronization objects (ex:...
  • Blog Post: Resetting the source code associations in the Visual Studio debugger

    Have you ever been debugging and found yourself looking at the wrong source code? Typically, this happens to me when I just hit the escape key at the dialog prompting me for the source file. I was recently asked how to reset the source code association by one of the folks here. After a few minutes of...
  • Blog Post: Using Set Next Statement to test code paths

    Sometimes, it's the little things that make a big difference to my productivity. One of those little things is the addition of Set Next Statement (a.k.a. set instruction pointer / setip) support in the .NET Compact Framework v2. If you are not familiar with the Set Next Statement feature, it allows you...
  • Blog Post: Just-In-Time Debugging on the .NET Compact Framework Version 2

    In May, at MEDC 2005, I had the pleasure of debuting Just-In-Time debugging on the .NET Compact Framework version 2. Today's topic is based on my session. Mike Zintel 's MEDC post has some pictures from the conference. To enable Just-In-Time debugging, you will first need to enable attach to process...
  • Blog Post: Configuring How the Visual Studio Debugger Handles Custom Exceptions

    A few days ago, I posted on how to configure the debugger to stop on first chance exceptions in Visual Studio .NET 2003 and Visual Studio 2005 . Today, I'd like to talk about how to configure the Visual Studio debugger for handling custom exceptions implemented in your code. Visual Studio .NET 2003 When...
  • Blog Post: How to Stop on First Chance Exceptions - Visual Studio 2005

    Yesterday, I talked about how to enable stopping in the debugger on first chance exceptions when using Visual Studio .NET 2003. Today, I'm going to cover the same topic using Visual Studio 2005. Note: Today's post is based on the beta 2 release of Visual Studio 2005. I will update these steps (in a later...
  • Blog Post: How to Stop on First Chance Exceptions - Visual Studio .NET 2003

    Last week, I talked about what first chance exceptions are and mentioned that you could configure the Visual Studio debugger to allow you to debug them. Using Visual Studio .NET 2003, you can configure how the debugger handles first chance exceptions on a per exception basis or for exception families...
  • Blog Post: What is a First Chance Exception?

    Have you ever been debugging an application and seen a message, in the output window, about a "First chance" exception? Ever wondered: What is a first chance exception? Does a first chance exception mean there is a problem in my code? What is a first chance exception? When an application...
Page 1 of 2 (45 items) 12