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 : ADDTRC STMT(*ALLINST) TRCPGM(MYDBGPGM) HTH Jean-Michel Penasse EXPERIA Europe jmpenasse@xxxxxxxxxxx +33(0)4.76.67.07.70 www.experia.com > -----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.
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.