- 論壇徽章:
- 1
|
本帖最后由 shihyu 于 2016-05-29 04:26 編輯
http://blog.csdn.net/xplizm/article/details/7272297
通過gdb去調(diào)試mytimer時(shí)發(fā)現(xiàn)其鏈接的是libevent的動(dòng)態(tài)庫,且無法在libevent庫的函數(shù)上設(shè)置斷點(diǎn)
動(dòng)態(tài)庫無法設(shè)置斷點(diǎn)這講法對嗎? 為什么必須編譯成 靜態(tài) 才可以使用 gdb 設(shè)置斷點(diǎn)
下面測試?yán)?編譯出來的 main 之后也可以 add 函數(shù)上設(shè)置斷點(diǎn)- #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;
- }
復(fù)制代碼- int add(int a, int b)
- {
- return a + b;
- }
復(fù)制代碼- int sub(int a, int b)
- {
- return a - b;
- }
復(fù)制代碼- 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
復(fù)制代碼 |
|