Changes between Initial Version and Version 1 of Ticket #391


Ignore:
Timestamp:
06/19/2026 12:28:43 AM (5 weeks ago)
Author:
Gary Dixon
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #391

    • Property Component AdministrationStandard Library
    • Property Summary Test ticket from GDixon -- please ignoreexec_com &condition_info_ptr parameter does not point to a good condition_info structure
    • Property VersionMR12.8
  • Ticket #391 – Description

    initial v1  
    1 Test problem.
     1The exec_com (version 2) program language includes a set of features which enable the program to establish an on-unit to handle one or more conditions that might occur while the program is executing.
     2
     3{{{
     4&on active_function_error &begin
     5   &set status_code &[status_code_name &condition_info_ptr]
     6   &print Condition &condition_name occurred to report event
     7   &print &"   " at location &condition_info_ptr
     8   call cu_$cl
     9   &end
     10...
     11}}}
     12
     13The &condition_info_ptr parameter is supposed to expand to a virtual pointer
     14(<segment_number>|<offset>) locating a condition_info structure 
     15describing the condition being handled.  This permits a command or
     16active function to access added details about the event being handled
     17by the current on-unit invocation.  For example, the on-unit shown above
     18sets the status_code variable to the name of the Multics status code
     19being reported in a com_err_ or active_fnc_err_ subroutine call.
     20
     21However, the exec_com interpreter does not properly call the
     22find_condition_info_ subroutine to fill-in elements of the
     23condition_info structure before executing line of the on-unit.  The
     24&condition_info_ptr parameter does locate a data structure, but
     25elements of that structure contain previous stack data because
     26the structure was not properly initialized with details from the
     27reported event.
     28
     29Executing an exec_com program with the statements above currently
     30generates a virtual_ptr value for the &condition_info_ptr that has
     31a correct format for a pointer locator, but points to storage for a
     32condition_info structure with bogus element contents.
     33
     34{{{
     35ec test_status
     36Condition active_function_error occurred to report event
     37   at location 234|14716
     38
     39r 16:54 0.192 7 level 2
     40
     41ds 234|14716 -as condition_info -lg
     42014716
     43condition_info                @ 234|14716
     44  mc_ptr = 0(0),au [invalid]
     45  version = 0,
     46  condition_name = ""
     47  info_ptr = 6(0) [invalid]
     48  wc_ptr = 247|7034   [pd]>!BBBKbbxJZGjlPk.area.linker
     49  loc_ptr = 234|14562   [pd]>stack_4
     50  flags                       @ 234|14740
     51    OFF: crawlout
     52  user_loc_ptr = 234|14516   [pd]>stack_4
     53r 16:54 0.182 5 level 2
     54}}}
     55
     56The condition_name is blank, and most other data in the structure is
     57invalid.  This is especially true of condition_info.info_ptr which
     58is supposed to locate the com_af_error_info structure created by
     59active_fnc_err_ when it signals the active_function_error condition.
     60
     61The data at location 234|14716 is shown by the dump_segment command.