Debug with Metaware
5 messages in this thread
I've no previous experience with Metaware or dual-screen debugging. All of my
previous experience is with Borland debug.
So here I am, with a compiled IPAS with codeview and line numbers turned on,
and I'm ready to debug, but when I set "mode mono" and run MDB and load/run
"3ds", I get stuck and can't get 3DS to run, or at least it appears that way.
Can anybody help me over the hump getting the program to run up to the point of
loading my IXP module through the keyframer. I'm able to run my 3DS and my
IXP without running debug (MDB), but can't even get 3DS to run under MDB.
Hi Ken,
<< I'm able to run my 3DS and my IXP without running debug (MDB), but can't
even get 3DS to run under MDB. >>
additional environment variables are:
set MDBHELP=d:\hc3_1\bin
set MDBENV=d:\hc3_1\bin
I get things going with the following bat file.
mode co80 // clear any changes to the screen….
e:
cd \3ds3 // note that i'm in the 3ds directory
copy x:\jonasr\axptst_i.axp process
cls
mode mono // passes control to the mono screen
set R386=-priv // (from the ipas2 readme..)
mdb -spath X:\JONASR -tandem
MDB initializes and prompts for a file to load:
"Executable program file name:" 3ds.exe<CR>
// you should see assembler on your screen
g <CR> //go.. 3ds should initialize
——————————————————————————-
——-
Ken what happens here after you've typed the g <carriage return>? are you using
the dual monitor approach?
// for axp debugging, you can do a
modify/object/attributes/setting.
// this causes an INT and the debugger regains control
eip++<CR> // to step over the int
load process\axptst_i.axp nocode // load in your code
// if your source code is pointing to the correct path
// *and* if you've compiled the *xp.c with the debug option
// you'll see your source code now.
// Set some breakpoints
b ClientDoCustomDialog <CR>
b more_functions.. <CR>
// you can also use pg-up/pg-dwn in your source and then
// click an a line number to set a breeak point.
// From here on you can use single step into|over (F7|F8) or
// the go command.
g <CR> // .. this will execute to your next breakpoint.
//
// Note. Symbol/Examine
// Check out the section in thge MDB Tools manual
// regarding Following Pointers (5.14 in the debugger
section)
// and following the Call Stack..
Keep in touch with your progress..
You have mentioned a few things I am not yet familiar with, so I'll try them
and report back.
Q1: By the way, If all of my code runs "prior" to the full frame being
displayed, is there any way to debug on a single VGA monitor, or must the mono
monitor be used for any and all 3DS debug?
Q2: Is the PharLap debugger also useful, or should I stick with the Metaware
debugger?
Hi Ken,
<< Q1: By the way, If all of my code runs "prior" to the full frame being
displayed, is there any way to debug on a single VGA monitor, or must the mono
monitor be used for any and all 3DS debug? >>
A dual monitor(one machine) or a dual machine setup is the only method I've
heard used successfully by the IPAS developers. I like the dual monitor setup
myself.
<< Q2: Is the PharLap debugger also useful, or should I stick with the
Metaware debugger? >>
I've used both and like Metaware's ability to follow a chain of pointers and I
had problems with setting accurate watchpoints on memory locations in Pharlap.
However, as I understand it, Gus uses Pharlap's debugger. I may not have given
Pharlap's debugger enough of a chance. Note that one requires "-FULLSYM" and
the other "-CVSYMBOLS" at compile/link time.
jonas[adesk]
Yes I've already noticed the different link options.
Thanks for the input and recommendation.