#Metaware mdb remote
4 messages in this thread
Jonas,
Hello again.
We have opted for remote debugging with the Metaware debugger. We've followed
the installation instructions from Metaware and the Autodesk README.DOC for the
IPAS3 Toolkit.
Currently, we are able to
"run386 mon 2 9600" successfully on monitor system
mdb on remote system
load "3ds.exe" (if we're in the 3DS3 directory on the remote)
go (which loads 3DS on the monitor system)
invoke the kxp on the monitor system
the mdb goes to int3
we eip++ successfully
load "ekg_i.kxp" nocode
go (takes us to the user dialog on the kxp in 3DS)
And now we're confused:
1. mdb is locked, no key functions at all
2. we aren't seeing source, but ASM
3. if we complete kxp and do a go we get a general fault protection from mdb.
So, I have some questions:
1. Assuming the we've compiled/linked correctly "ekgmw30 debug" (a modified
makesample.bat), and we've copied the source (ekg.c) and executable (ekg_i.kxp)
to the 3ds3 directory on the monitor and remote. Also copied the ekg_i.kxp to
3ds3\process on the monitor system. set the source dir in mdb to c:\3ds3
Why are we not seeing source in mdb?
2. Any ideas why we have no mdb keyboard or mouse when the user dialog comes
up in 3DS? Is it because 3DS is in control then?
3. Is the general protection fault error #00000000 a clue to anything?
4. From reading the README.DOC for IPAS3 toolkit it appears that it wants us
to copy ekg_i.kxp and ekg.c to the 3ds3 dir on the remote, and the 3ds3 dir on
the monitor system, I assume I also need to put ekg_i.kxp in 3ds3\process\ on
the monitor system as well. Am I reading this correctly? It seems that it
really only needs to be where 3ds picks it up for execution, and where mdb
picks it up for source debug.
Hope this was too garbled…I know what I mean 🙂
Steve
Stephen,
<< MDB.. >>
I use the dual monitor on one system approach. Here's the bat I use to get into
mdb to debug a program called bub_i.kxp. My code is on x:\jonas\bub.c and the
executable is in e:\3ds3\process\bub_i.kxp.
mode co80
e:
cd \3ds3
copy x:\jonasr\bub_i.kxp process
cls
mode mono
set R386=-priv
mdb -spath X:\JONASR -tandem
<< load "3ds.exe"
go
invoke the kxp on the monitor system
the mdb goes to int3
we eip++ successfully
load "bub_i.kxp" nocode>>
Here's where we differ:
b ClientUserCode (set a breakpoint)
b ClientDoCustomDialog (set another one)
b … set some more and then
go
<< assembler…?? >>
When you trace your compile stream you may find that kxp.c which gets linked in
to your *.obj is compiled without debug. Doing the above will display your code
when you hit it and the assembler that you are seeing is probably kxp.c and not
bub_i.kxp as you expected..
Good to see you in the depths of this. I've never used remote metaware
debugging but it sounds like you are very close.
Does your "mdb.. " line need a -dev n? Where N specifies the com port…
jonas[adesk]
Jonas,
We've added kxp.c to the remote 3ds3 directory, and now get the main source,
still working on getting the ekg_i,kxp source….
If only this was horseshoes,…. or love.
🙂
We will get it…..but not without help.
Steve
Stephen,
<< We will get it…..but not without help…>>
Are you saying that you see the kxp.c source but when you you hit the
ClientUserCode breakpoint you only see the assembler? You should be seeing your
kxp source when you hit this area.. If you were just using page down when
hitting kxp.c source, I don't think that you will see your source… I used the
Phal Lap debugger before using MDB.. What I didn't like was that ints were
never displayed as ints also once I figured out how to walk a pointer chain in
MBD I never looked back. There was another problem I had with watching memory
locations with Phar Laps debugger that I didn't have with using mdb..
Keep it up.. did you end up needing the "-dev n" on your mdb line?
Why don't you post your final results when you have it all working, please for
future IPAS3 developers.
jonas[adesk]