1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
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.
|