1. A method in a computing system for debugging interpreted code in a visual debugger using breakpoints to facilitate step-based evaluation of expressions, comprising: presenting a visual user interface for receiving debugging commands; in response to a received debug command to set or change an indicated breakpoint in a segment of code that is expressed in an interpreted programming language and that defines one or more expressions, determining the nearest enclosing expression to the indicated breakpoint, including when the nearest enclosing expression begins on a line of source code associated with the code segment that is different from a line of the associated source code that contains the indicated breakpoint; and generating a breakpoint address that indicates a location in the segment of code that corresponds to the beginning of the determined enclosing expression when the code segment is evaluated; causing the code segment to be evaluated using an interpreter for the interpreted programming language, such that evaluation automatically stops when the location in the code segment that corresponds to the breakpoint address is encountered; causing one or more source code statements that correspond to and indicate the location in the code segment where the evaluation stopped to be displayed in the visual interface; and receiving one or more additional debug commands to further control the evaluation of the code segment or to examine aspects of the code segment under evaluation.