gdb 調試 libevent
本帖最后由 shihyu 于 2016-05-29 04:26 编辑http://blog.csdn.net/xplizm/article/details/7272297
通过gdb去调试mytimer时发现其链接的是libevent的动态库,且无法在libevent库的函数上设置断点
动态库无法设置断点这讲法对吗? 为什么必须编译成 静态 才可以使用 gdb 设置断点
下面测试例子 编译出来的 main 之后也可以 add 函数上设置断点#include <stdio.h>
int a = 100;
int b = 200;
int add(int,int);
int sub(int,int);
int main(int argc, char* argv[])
{
printf("add=%d\n", add(a, b));
printf("sub=%d\n", sub(a, b));
return 0;
}
int add(int a, int b)
{
return a + b;
}
int sub(int a, int b)
{
return a - b;
}
CC = gcc
SOFLAGS = -shared -fPIC
LDFLAGS = -lm
CFLAGS = -Wall -pedantic -ggdb3 -O0 -std=c99 -lpthread
all: add.so sub.so main
main:
${CC}-o mainmain.c -L./ -ladd -L./ -lsub ${CFLAGS} ${LDFLAGS}
add.so: add.c
$(CC) ${SOFLAGS} -g -o libadd.so $?
sub.so: sub.c
$(CC) ${SOFLAGS} -g -o libsub.so $?
.PHONY: clean
clean:
rm -f main *.so *.o
页:
[1]