- 论坛徽章:
- 1
|
本帖最后由 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 main main.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
复制代码 |
|