60 lines
2.5 KiB
Text
60 lines
2.5 KiB
Text
This is a preliminary release of GDB and GDBSERVE.NLM for Alpha/Netware.
|
|
|
|
Building this release is very straightforward. You just need to do the
|
|
following:
|
|
|
|
1) Unpack the release. gunzip < gdb-4.12.3.tar.gz | tar xvf -
|
|
should do the trick.
|
|
2) cd gdb-4.12.3
|
|
3) ./configure --target alpha-netware
|
|
4) make BISON=yacc [You can use either gcc, or the DEC compiler here].
|
|
|
|
Building GDBSERVE.NLM:
|
|
|
|
1) cd gdb-4.12.3/gdb/nlm
|
|
2) Edit Makefile, and change the value to NWAXPDEV to point at the
|
|
DEC development kit.
|
|
3) make
|
|
|
|
To debug a program, you need to install GDBSERVE.NLM on your server in
|
|
[SYSTEM] (or, anywhere in your search path). Then, connect your netware
|
|
server to the host with a null modem cable. Start up the app you want to
|
|
debug by doing `gdbserve 0 0 APPNAME APP-ARGS ...'. At this point, the
|
|
server will be stopped inside of GDBSERVE, waiting for debugger commands
|
|
from the serial line. Now, you run GDB on a copy of the app .o file,
|
|
and do a target command to connect to the server. `gdb foo.o', then
|
|
(gdb) target remote /dev/tty00. Note that foo.o should not be the NLM.
|
|
It should be the file that is input to alphanlm or nlmconv.
|
|
|
|
At this point, GDB should be paused at the first instruction of the program
|
|
(that's probably _Prelude). You can put a breakpoint at main, and then do
|
|
a continue command to debug your program. At that point, normal step/next
|
|
commands, backtrace, etc should work.
|
|
|
|
Known problems:
|
|
|
|
Sometimes you will see messages like the following:
|
|
warning: Hit heuristic-fence-post without finding
|
|
warning: enclosing function for address 0x1112f1f0
|
|
These can be ignored. They are usually associated with stepping over
|
|
external functions (like printf).
|
|
|
|
Function calling (ie: print foo(42)) is very slow. A fix for this is in
|
|
the works.
|
|
|
|
Due to last minute problems with GAS, I was not able to build GDBSERVE.NLM
|
|
with our tools, and I was unable to test code compiled with our tools. This
|
|
should not be a problem, as GDB will quite happily debug programs compiled
|
|
with either GCC, or the DEC tools. For the time being, GDBSERVE will be
|
|
compiled with the DEC tools.
|
|
|
|
We can't build prelude.o because the DEC dev kit didn't supply libhooks.h.
|
|
For the time being, I have just copied prelude.o from the DEC dev kit into
|
|
the GDB kit.
|
|
|
|
In case of problems:
|
|
|
|
If GDB hangs when talking to the target, try turning on remote debugging
|
|
(you can use ^C to wake up GDB if necessary). To do this, just type
|
|
`set remotedebug 1'. This will print out the protocol packets whenever
|
|
GDB and GDBSERVE talk to each other.
|