source code debug von Funktionen aus shared librarys

From: David Werner <werner(at)bi.bau.tu-bs.de>
Date: Mon, 7 Jun 1999 23:05:55 +0200 (METDST)

Hallo,
Wie kann ich erreichen, dass ich unter FreeBSD mit dem gdb
den Inhalt einer Funktion, die in einer shared lib definiert ist
sehen (debuggen) kann?

Folgendes Beispiel funktioniert unter Linux (aelteres redhat 4.x)
prima, jedoch nicht unter FreeBSD:

########### Inhalt von Makefile
CFLAGS=-fPIC -g

test: test.o libtest.so
        cc -o test test.o -Wl,-L -Wl,. -Wl,-rpath -Wl,. -ltest

libtest.so: lib.o
        ld -shared -o libtest.so lib.o

clean:
        rm -f lib.o libtest.so test.o test

########### Inhalt von lib.c
#include<stdio.h>

void blub(void)
{
        printf("test\n");
}

########### Inhalt von test.c
void blub(void);

main()
{
        blub();
}

##############

Unter Linux kann man problemlos in die Funktion blub()
der shared lib libtest.so "hineinsteppen" und sich diese
dann anzeigen lassen.
Bei FreeBSD bewirkt ein step-Befehl an der Stelle vor
Funktion blub() nur die Ausfuehrung der Funktion.
Ich nehme mal an, dass ich noch eine zusaetzliche Linker-Option
setzen muss, nur welche?

BTW: die Linux-emu unterstuetzt nicht den ptrace-syscall
ist das moeglich/relativ einfach/relativ aufwendig zu realisieren?
(ptrace braucht man wenn man linux-binarys im linux-emulator debuggen
moechte, oder ist das zu pervers :))
Um diese Frage braucht ihr euch nicht den Kopf zu zerbrechen,
sie gehoert eher in eine passende Liste zu dem Emulator.
Ciao,
        David

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 07 Jun 1999 - 23:05:59 CEST

search this site