我有一个非常基本的问题。我确实在这里四处张望,但仍然怀疑。
考虑下面的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

你能把它换成新的形式看看是否有分段故障吗?

10-02 11:23