Patent ID: 7657873

Claim:
A debugging system for debugging objects, comprising: a processor; system memory; one or more computer storage media having stored thereon computer-executable instructions representing a code debug component, an expression evaluator, a bit map object containing image data for an image, and a plurality of visualizers defining debug time presentation formats for corresponding objects, the code debug component having a binary data format for representing object data that is being debugged, the code debug component having a graphical user interface for interacting with objects that are being debugged at the code debug component, the bit map object containing a type that has a visualizer attribute on it, wherein the debugging system is configured to: run the code debug component in a debugger process; and run the bit map object in a debuggee process; wherein the expression evaluator is configured to access the bit map object; determine that the bit map object is of a type that has a visualizer attribute on it; and inform the code debug component that the bit map object is of a type that has a visualizer attribute on it; wherein the code debug component is configured to: expose a plurality of available visualizers for the bit map object through the graphical user interface in response to being informed that the bit map object is of a type that has a visualizer attribute on it; receive a selection of a specified visualizer from among the exposed plurality of available visualizers for the bit map object; wherein the debugging system is further configured to: load the specified visualizer into a new application domain in the debugger process; load a visualizer object representing the bit map object into the debuggee process; establish communication between the specified visualizer and the visualizer object; and pass an instance of the visualizer object to the code debug component in the binary data format; and wherein the code debug component is further configured to: receive the instance of the visualizer object in the binary format at the specified visualizer; convert the visualizer object from the binary format to an image data format at the specified visualizer; and present the visualizer object in accordance with the image data format to represent the contents of the bit map image at the graphical user interface.