1. A method, comprising: generating, by one or more processors, using a compiler in a programming environment: executable code, where: the executable code includes one or more program objects, and at least one of the one or more program objects is associated with data, and a first marshalling function based on a request from a debugger, where the first marshalling function: receives a portion of programming-language-specific information associated with the one or more program objects of the executable code, produces a first presentation layer representation of the portion of the programming-language-specific information, the first presentation layer representation: is compatible with the debugger, and includes opaque data objects representing the data associated with the at least one of the one or more program objects of the executable code, the opaque data objects being formatted for display, the opaque data objects in a different format from the one or more program objects of the executable code, and provides the first presentation layer representation of the portion of the information to the debugger; and debugging, by the one or more processors, using the debugger, the executable code, the debugging including: interacting with a presentation layer, where the presentation layer: is external to the debugger, and is used for displaying the opaque data objects included in the first presentation layer representation of the portion of the information; sending the first presentation layer representation of the portion of the information from the debugger to the presentation layer, instructing the presentation layer to display the first presentation layer representation of the portion of the information via a display device, displaying the opaque data objects included in the first presentation layer representation of the portion of the information via the display device, the displaying: performed using the presentation layer external to the debugger, and providing the data associated with the at least one of the one or more program objects of the executable code; receiving, by the one or more processors, proposed changes to the first presentation layer representation of the portion of the information; generating, by the one or more processors, a second marshalling function as a result of the received proposed changes to the first presentation layer representation, the second marshalling function: creates a second presentation layer representation containing a second set of opaque data objects, the second presentation layer representation including the proposed changes to the first presentation layer representation, and produces a programming-language-specific representation of the second presentation layer representation; and executing, by the processors, the programming-language-specific representation of the second presentation layer representation.