我有一个非常基本的问题。我确实在这里四处张望,但仍然怀疑。
考虑下面的makefile(在前面的问题中也给出了它)
all: clients.so simulator backup
LD_PRELOAD=/home/Juggler/client/clients.so ./simulator
backup: backup.c libclient.a
gcc backup.c -o backup -L /home/Juggler/client -L. -lclient -ldl
simulator: simulator.c libclient.a
gcc -g simulator.c -o simulator -L /home/Juggler/client -L. -lclient -ldl -pthread
libclient.a: libclient.o client.o
ar rcs libclient.a libclient.o client.o
libclient.o:libclient.c
gcc -c libclient.c -o libclient.o -pthread
clients.so: client.o client_invoke.o
ld -shared -o clients.so client_invoke.o client.o -ldl
client_invoke.o: client_invoke.c
gcc -Wall -fPIC -DPIC -c -g client_invoke.c
client.o: client.c
gcc -Wall -fPIC -DPIC -c -g client.c -ldl -pthread
使用gdb或valgrind进行调试时我应该做什么/更改什么。实际上,我在执行make时遇到分段错误,希望进行调试。但我从未在makefile中使用过gdb或valgrind
谢谢
最佳答案
我对你的报告做了一个小修改。你最初写的
client.o: client.c gcc -Wall -fPIC -DPIC -c -g client.c -ldl -pthread
你能把它换成新的形式看看是否有分段故障吗?