shihyu 发表于 2016-05-29 04:26

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]
查看完整版本: gdb 調試 libevent