A long time away, i've tried some king of a source debugger (not for MI) and 
didn't use addbkp, but the trace function which support a user exit pgm for 
each trace step.
And fortunatly it support to add trace either at hll level ('*ALL') or at MI 
level ('*ALLINST')
Something like that :



Jean-Michel Penasse

> -----Original Message-----
> From: mi400-bounces@xxxxxxxxxxxx [mailto:mi400-bounces@xxxxxxxxxxxx]On
> Behalf Of Richard Hart
> Sent: Thursday, October 09, 2003 8:43 PM
> To: mi400@xxxxxxxxxxxx
> Cc: Richard C. Hart
> Subject: [MI400] Mi Source Debugger
> To all:
> I read with interest the posts about the MI emulator.  Not that I 
> would ever remotely attempt such a thing (nervous laugh) or want 
> to, but because of the interesting background information.  I 
> had, for some time, assumed that older versions of OS/400 were 
> essentially written in MI, and newer versions in C++.  I guess 
> that's approximately correct?
> Anyway, I am working on an MI source debugger program, just as an 
> interesting project.  Not  w r i t t e n  in MI, but for the 
> purposed of  d e b u g g i n g  MI.  Sadly, programming is really 
> now more a hobby for me than a vocation, since I am going into a 
> different field.  But I digress.
> Most of the usual debugger functions ("Find", "Set Breakpoint", 
> etc.) didn't present too much of a problem.  But, the "Single 
> Step" exececution function is a big hurdle.  It  s h o u l d  of 
> course, cause the program to run exactly one MI instruction and 
> then stop at the next instruction.  If a branch instruction is 
> encountered, such as "CmpBla(b)  FieldA, FieldB / Eq 
> (Equal-Branch-Point);", the program should stop at 
> Equal-Branch-Point if the branch is in fact taken.  This is what 
> I cannot figure out how to do!
> My stab at "emulating" this function was to set a breakpoint at 
> the NEXT sequential MI instruction from the instruction at which 
> the program is currently stopped, then let the program continue 
> to run (and stop at the next instruction).  This of course works 
> fine when the instruction stream is in fact executed perfectly in 
> sequence, but of course that is often not the case, program 
> branching being the "MI way" to support an IF/ELSE construct.
> SO:  I hope I have explained the little problem clearly.  Does 
> anyone know how IBM does this, for example in the (OPM) "Start 
> Source Debugger" (STRISDB) product.  It obviously is possible.  I 
> thought about setting breakpoints for ALL instructions in the 
> program.  That would be overkill worthy of a politician (not 
> saying which flavor)!
> Thanks,
> Rich Hart
> _______________________________________________
> This is the MI Programming on the AS400 / iSeries (MI400) mailing list
> To post a message email: MI400@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/mi400
> or email: MI400-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/mi400.

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2022 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.