Postup pre ladenie OEM protokolov na platformách Linux/RaspberryPI
Vypnite autoštart KOM procesu (v konfigurácii procesu pomocou CNF) a vypnite KOM proces (pomocou Sysconsole)
UpravteMakefilepre 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áraprotdll: 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 Initalebo 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/F0slúž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 debuggeragdb.