免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1217 | 回复: 0
打印 上一主题 下一主题

[其他] gdb 調試 libevent [复制链接]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:49:03
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-05-29 04:26 |只看该作者 |倒序浏览
本帖最后由 shihyu 于 2016-05-29 04:26 编辑

http://blog.csdn.net/xplizm/article/details/7272297

通过gdb去调试mytimer时发现其链接的是libevent的动态库,且无法在libevent库的函数上设置断点  

动态库无法设置断点这讲法对吗? 为什么必须编译成 静态 才可以使用 gdb 设置断点  

下面测试例子 编译出来的 main 之后也可以 add 函数上设置断点
  1. #include <stdio.h>

  2. int a = 100;
  3. int b = 200;

  4. int add(int,int);
  5. int sub(int,int);

  6. int main(int argc, char* argv[])
  7. {
  8.     printf("add=%d\n", add(a, b));
  9.     printf("sub=%d\n", sub(a, b));
  10.     return 0;
  11. }
复制代码
  1. int add(int a, int b)
  2. {
  3.     return a + b;
  4. }
复制代码
  1. int sub(int a, int b)
  2. {
  3.     return a - b;
  4. }
复制代码
  1. CC = gcc
  2. SOFLAGS = -shared -fPIC
  3. LDFLAGS = -lm
  4. CFLAGS = -Wall -pedantic -ggdb3 -O0 -std=c99 -lpthread

  5. all: add.so sub.so main

  6. main:
  7.         ${CC}  -o main  main.c -L./ -ladd -L./ -lsub ${CFLAGS} ${LDFLAGS}

  8. add.so: add.c
  9.         $(CC) ${SOFLAGS} -g -o libadd.so $?

  10. sub.so: sub.c
  11.         $(CC) ${SOFLAGS} -g -o libsub.so $?

  12. .PHONY: clean
  13. clean:
  14.         rm -f main *.so *.o
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP