PR# 14340 Precondition violation while debugging .NET code - 2
Problem Report Summary
Submitter: manus_eiffel
Category: Debugger
Priority: Medium
Date: 2008/05/08
Class: Bug
Severity: Serious
Number: 14340
Release: 6.2.7.3416
Confidential: No
Status: Closed
Responsible:
Environment: Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14
Synopsis: Precondition violation while debugging .NET code - 2
Description
When stopping in the debugger on a Call on Void target, that is to say debugger is stopped at {ISE_EXCEPTION_MANAGER}.internal_raise on the line `raise', trying to evaluate `l_exception.stack_trace' gives me this precondition violation: position_small_emough: Precondition violated. (PRECONDITION_VIOLATION) ******************************** Thread exception ***************************** In thread Root thread 0x0 (thread id) ******************************************************************************* ------------------------------------------------------------------------------- Class / Object Routine Nature of exception Effect ------------------------------------------------------------------------------- AST_SCOPE_KEEPER is_local_attached @2 position_small_emough: <0000000002A70448> Precondition violated. Fail ------------------------------------------------------------------------------- AST_CONTEXT is_local_attached @1 <0000000012FD57E8> Routine failure. Fail ------------------------------------------------------------------------------- AST_DEBUGGER_EXPRESSION_CHECKER_GENERATOR process_access_id_as @58 <000000001C144D28> (From AST_FEATURE_CHECKER_GENERATOR) Routine failure. Fail ------------------------------------------------------------------------------- ACCESS_ID_AS process @2 <000000001C105AE8> Routine failure. Fail ------------------------------------------------------------------------------- AST_DEBUGGER_EXPRESSION_CHECKER_GENERATOR process_nested_as @4 <000000001C144D28> (From AST_FEATURE_CHECKER_GENERATOR) Routine failure. Fail ------------------------------------------------------------------------------- NESTED_AS process @2 <000000001C105AB8> Routine failure. Fail ------------------------------------------------------------------------------- AST_DEBUGGER_EXPRESSION_CHECKER_GENERATOR process_expr_call_as @3 <000000001C144D28> (From AST_FEATURE_CHECKER_GENERATOR) Routine failure. Fail ------------------------------------------------------------------------------- EXPR_CALL_AS process @2 <000000001C105A98> Routine failure. Fail ------------------------------------------------------------------------------- AST_DEBUGGER_EXPRESSION_CHECKER_GENERATOR expression_or_instruction_type_check_and_code @21 <000000001C144D28> Routine failure. Fail ------------------------------------------------------------------------------- AST_DEBUGGER_EXPRESSION_CHECKER_GENERATOR expression_type_check_and_code @3 <000000001C144D28> Routine failure. Fail ------------------------------------------------------------------------------- DBG_EXPRESSION_EVALUATOR_B byte_node_from_ast @15 <0000000002C5FFE8> Routine failure. Fail ------------------------------------------------------------------------------- Call stack: ObjectClassRoutine ------------------ [0x5663E38] AST_SCOPE_KEEPER is_local_attached ( @ 2 ) [0x5663EE8] AST_CONTEXT is_local_attached ( @ 1 ) [0x5663F48] AST_DEBUGGER_EXPRESSION_CHECKER_GENERATOR process_access_id_as (From AST_FEATURE_CHECKER_GENERATOR) ( @ 58 ) [0x5663E58] ACCESS_ID_AS process ( @ 2 ) [0x5663F48] AST_DEBUGGER_EXPRESSION_CHECKER_GENERATOR process_nested_as (From AST_FEATURE_CHECKER_GENERATOR) ( @ 4 ) [0x5663F50] NESTED_AS process ( @ 2 ) [0x5663F48] AST_DEBUGGER_EXPRESSION_CHECKER_GENERATOR process_expr_call_as (From AST_FEATURE_CHECKER_GENERATOR) ( @ 3 ) [0x5663F30] EXPR_CALL_AS process ( @ 2 ) [0x5663F48] AST_DEBUGGER_EXPRESSION_CHECKER_GENERATOR expression_or_instruction_type_check_and_code ( @ 21 ) [0x5663F48] AST_DEBUGGER_EXPRESSION_CHECKER_GENERATOR expression_type_check_and_code ( @ 3 ) [0x5663E50] DBG_EXPRESSION_EVALUATOR_B byte_node_from_ast <R> ( @ 15 ) [0x5663E50] DBG_EXPRESSION_EVALUATOR_B get_byte_node <R> ( @ 47 ) [0x5663E50] DBG_EXPRESSION_EVALUATOR_B evaluate ( @ 26 ) [0x5663EA0] DBG_EXPRESSION evaluate_with_settings ( @ 5 ) [0x5663EA0] DBG_EXPRESSION evaluate ( @ 1 ) [0x5663E80] ES_OBJECTS_GRID_EXPRESSION_LINE process_evaluation ( @ 5 ) [0x5663E80] ES_OBJECTS_GRID_EXPRESSION_LINE compute_grid_display ( @ 6 ) [0x5663E80] ES_OBJECTS_GRID_EXPRESSION_LINE compute_grid_row (From ES_OBJECTS_GRID_LINE) ( @ 2 ) [0x5663E80] ES_OBJECTS_GRID_EXPRESSION_LINE compute_grid_row (From ES_OBJECTS_GRID_OBJECT_LINE) ( @ 3 ) [0x5663E80] ES_OBJECTS_GRID_EXPRESSION_LINE computed_grid_item (From ES_OBJECTS_GRID_LINE) ( @ 3 ) [0x5663E48] ES_OBJECTS_GRID compute_grid_item ( @ 10 ) [0x5663F00] FUNCTION fast_item ( @ 0 ) [0x5663F00] FUNCTION item ( @ 3 ) [0x5663DF8] EV_GRID_DRAWER_I redraw_area_in_drawable_coordinates ( @ 106 ) [0x5663DF8] EV_GRID_DRAWER_I redraw_area_in_drawable_coordinates_wrapper ( @ 1 ) [0x5663E98] PROCEDURE fast_call ( @ 0 ) [0x5663E98] PROCEDURE call ( @ 3 ) [0x5663E00] EV_GEOMETRY_ACTION_SEQUENCE wrapper ( @ 1 ) [0x5663E68] PROCEDURE fast_call ( @ 0 ) [0x5663E68] PROCEDURE call ( @ 3 ) [0x5663E00] EV_GEOMETRY_ACTION_SEQUENCE call (From ACTION_SEQUENCE) ( @ 22 ) [0x5663E00] EV_GEOMETRY_ACTION_SEQUENCE call (From EV_LITE_ACTION_SEQUENCE) ( @ 3 ) [0x5663F08] EV_DRAWING_AREA_IMP on_paint ( @ 12 ) [0x5663F08] EV_DRAWING_AREA_IMP on_wm_paint (From WEL_COMPOSITE_WINDOW) ( @ 6 ) [0x5663F08] EV_DRAWING_AREA_IMP process_message (From WEL_COMPOSITE_WINDOW) ( @ 3 ) [0x5663EC8] WEL_DISPATCHER window_procedure (From WEL_ABSTRACT_DISPATCHER) <R> ( @ 10 ) [0x5663F20] WEL_MSG cwin_dispatch_message ( @ 0 ) [0x5663F20] WEL_MSG dispatch ( @ 1 ) [0x5663F10] EV_APPLICATION_IMP process_message ( @ 13 ) [0x5663F10] EV_APPLICATION_IMP process_underlying_toolkit_event_queue ( @ 7 ) [0x5663F10] EV_APPLICATION_IMP process_event_queue (From EV_APPLICATION_I) <R> ( @ 2 ) [0x5663F10] EV_APPLICATION_IMP launch (From EV_APPLICATION_I) ( @ 3 ) [0x5663E28] EV_APPLICATION launch <R> ( @ 4 ) [0x5663F28] ES_GRAPHIC make ( @ 4 ) [0x5663DF0] EB_KERNEL make ( @ 3 )
To Reproduce
Problem Report Interactions
Fixed by rev#73549
I could reproduce doing: run until I got a call on Void put a breakpoint on {ISE_EXCEPTION_MANAGER}.constructed_exception_chain (last bp index) and try to evaluate expression l_exception.stack_trace It seems to be due to missing context.init_variable_scopes when checking expression for exp evaluator. (This seems to be done on the process_routine... level, so this seems logicial, we need to add such initialization somewhere, probably on {AST_DEBUGGER_EXPRESSION_CHECKER_GENERATOR}.expression_or_instruction_type_check_and_code I will test this solution .. soon.