...
- Vypnite autoštart KOM procesu (v konfigurácii procesu pomocou CNF) a vypnite KOM proces (pomocou Sysconsole)
- Upravte Makefile pre OEM protokol a pridajte doň flag "-g", aby kompilátor zahrnul ladiace informácie. Príklad: zmena z
CFLAGS= -I ../h
na
CFLAGS=-g -I ../h - Prekompilujte OEM protokol a nakopírujte výslednú knižnicu do adresára protdll:
cd /home/d2000/oem
rm template.o template.so
make
cp template.so /opt/d2000/protdll/oem_prot11.so - V adresári, v ktorom sú zdrojové kódy OEM protokolu, naštartujte debugger a nastavte breakpoint na konkrétny riadok/riadky v OEM protokole (napr. v rámci procedúry Init alebo ReadAllPoints)
Potvrďte "y", že chcete aktivovať breakpoint pri natiahnutí budúcich zdieľaných knižníc.
cd /home/d2000/oem
gdb /opt/d2000/bin/kom
(gdb) break template.c:73
No symbol table is loaded. Use the "file" command.
Make breakpoint pending on future shared library load? (y or [n]) y - Spustite KOM proces (parameter /F0 slúži na vypnutie watchdogov)
run /F0 - Debugger sa zastaví na príslušnom riadku zdrojového riadku OEM protokolu:
[Switching to Thread 0x72f161a0 (LWP 3369)]
Thread 14 "S204b" hit Breakpoint 1, ReadAllPoints (St=0x75847580)
at template.c:73
73 template.c: Permission denied.
(gdb) bt
#0 ReadAllPoints (St=0x75847580) at template.c:73
#1 0x00eb00b0 in ?? ()
#2 0x006ae364 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?) - Pokračujte v ladení pomocou štandardných príkazov debuggera gdb.
...