[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::pascal

Title:DEC Pascal Notes
Notice:See note 1 for kits. Bug reports to CLT::DEC_PASCAL_BUGS
Moderator:TLE::REAGAN
Created:Sat Jan 25 1986
Last Modified:Tue Jun 03 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:2675
Total number of notes:13409

2656.0. "DEBUG VAX V7.0 STEP w PASCAL does not work" by CSC32::D_SANFORD () Fri Feb 07 1997 14:18

  John,
    
    Just a heads up, this is simular to the previous problem, but I
    believe this to be a debugger problem.
    
    We have gotten no updates on our IMPT priority 2 CLD... hope we'll
    hear something today.
    
    -drew
    
           <<< TURRIS::DISK$NOTES_PACK:[NOTES$LIBRARY]DEBUG.NOTE;4 >>>
                                   -< DEBUG >-
================================================================================
Note 1835.0        DEBUG VAX V7.0 STEP w PASCAL does not work         No replies
CSC32::D_SANFORD                                     58 lines   7-FEB-1997 13:56
--------------------------------------------------------------------------------
    OpenVMS VAX DEBUG Version V7.0-000
    OpenVMS VAX V7.0

    Simular to problem reported in TURRIS::DEBUG, note 1829.*.

    In this case if we initialize a variable and then make a function
    call, the debugger will no longer be able to STEP.

    If you issue "DBG> SET BREAK %LINE 14" it will break at this 
    line; otherwise it just runs until the end of the application on
    the STEP.

    If you feel this is the same as the previous problem please yet
    me know; otherwise I'll need to raise another priority 2 CLD as
    the workaround is not sufficient.

    Regards, Drew Sanford
    Customer Support Center
    RE: C970121-4247

program test_debug (input,output);
var
   line : varying [255] of char;

begin
{  If you remove the next line the debugger will not fail, not sure  }
{  what affect 'line := 'testing'' has.  But after this assignment   }
{  if you execute any function the debugger will just continue as if }
{  you entered DBG> GO                                               }

   line := 'testing';
   writeln ('Use DBG> STEP');
   writeln (substr(line,1,7));
   writeln ('You should not see this line without a DBG> STEP');
end.


$ run test

         OpenVMS VAX DEBUG Version V7.0-000

%DEBUG-I-INITIAL, Language: PASCAL, Module: TEST_DEBUG

DBG> s
stepped to TEST_DEBUG\%LINE 11
    11:    line := 'testing';
DBG> s
stepped to TEST_DEBUG\%LINE 12
    12:    writeln ('Use DBG> STEP');
DBG> s
Use DBG> STEP
stepped to TEST_DEBUG\%LINE 13
    13:    writeln (substr(line,1,7));
DBG> s
testing
You should not see this line without a DBG> STEP
%DEBUG-I-EXITSTATUS, is '%SYSTEM-S-NORMAL, normal successful completion'
DBG>  Exit
T.RTitleUserPersonal
Name
DateLines
2656.1TLE::REAGANAll of this chaos makes perfect senseFri Feb 07 1997 14:4017
    I had a phone discussion with a debugger developer the other day.
    
    It seems they "improved" how they do STEP by looking forward
    in the instruction stream and doing something or other with
    breakpoints.  The debugger folks didn't know (or remember)
    that Pascal uses a
    
    	HALT
    	.BYTE xxx
    
    sequence to signal run-time errors from generated code.  This
    sequence screwed them up and crashed out the debugger.  Now that 
    they know about it, he said they'd have to "adjust" their code
    to deal with situations like this (you can also do such instruction
    sequences in MACRO as well).  
    
    				-John