Commit | Line | Data |
---|---|---|
27847c6f SG |
1 | This is a preliminary release of GDB and GDBSERVE.NLM for Alpha/Netware. |
2 | ||
3 | Building this release is very straightforward. You just need to do the | |
4 | following: | |
5 | ||
6 | 1) Unpack the release. gunzip < gdb-4.12.3.tar.gz | tar xvf - | |
7 | should do the trick. | |
8 | 2) cd gdb-4.12.3 | |
9 | 3) ./configure --target alpha-netware | |
10 | 4) make BISON=yacc [You can use either gcc, or the DEC compiler here]. | |
11 | ||
12 | Building GDBSERVE.NLM: | |
13 | ||
14 | 1) cd gdb-4.12.3/gdb/nlm | |
15 | 2) Edit Makefile, and change the value to NWAXPDEV to point at the | |
16 | DEC development kit. | |
17 | 3) make | |
18 | ||
19 | To debug a program, you need to install GDBSERVE.NLM on your server in | |
20 | [SYSTEM] (or, anywhere in your search path). Then, connect your netware | |
21 | server to the host with a null modem cable. Start up the app you want to | |
22 | debug by doing `gdbserve 0 0 APPNAME APP-ARGS ...'. At this point, the | |
23 | server will be stopped inside of GDBSERVE, waiting for debugger commands | |
24 | from the serial line. Now, you run GDB on a copy of the app .o file, | |
25 | and do a target command to connect to the server. `gdb foo.o', then | |
26 | (gdb) target remote /dev/tty00. Note that foo.o should not be the NLM. | |
27 | It should be the file that is input to alphanlm or nlmconv. | |
28 | ||
29 | At this point, GDB should be paused at the first instruction of the program | |
30 | (that's probably _Prelude). You can put a breakpoint at main, and then do | |
31 | a continue command to debug your program. At that point, normal step/next | |
32 | commands, backtrace, etc should work. | |
33 | ||
34 | Known problems: | |
35 | ||
36 | Sometimes you will see messages like the following: | |
37 | warning: Hit heuristic-fence-post without finding | |
38 | warning: enclosing function for address 0x1112f1f0 | |
39 | These can be ignored. They are usually associated with stepping over | |
40 | external functions (like printf). | |
41 | ||
42 | Function calling (ie: print foo(42)) is very slow. A fix for this is in | |
43 | the works. | |
44 | ||
45 | Due to last minute problems with GAS, I was not able to build GDBSERVE.NLM | |
46 | with our tools, and I was unable to test code compiled with our tools. This | |
47 | should not be a problem, as GDB will quite happily debug programs compiled | |
48 | with either GCC, or the DEC tools. For the time being, GDBSERVE will be | |
49 | compiled with the DEC tools. | |
50 | ||
51 | We can't build prelude.o because the DEC dev kit didn't supply libhooks.h. | |
52 | For the time being, I have just copied prelude.o from the DEC dev kit into | |
53 | the GDB kit. | |
54 | ||
55 | In case of problems: | |
56 | ||
57 | If GDB hangs when talking to the target, try turning on remote debugging | |
58 | (you can use ^C to wake up GDB if necessary). To do this, just type | |
59 | `set remotedebug 1'. This will print out the protocol packets whenever | |
60 | GDB and GDBSERVE talk to each other. |