Page tree
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

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)

  • 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.


  • No labels