当前位置: 首页 > news >正文

Make breakpoint pending on future shared library load

在使用GDB设置断点的时候,有时候会 GDBh 会提示 "Make breakpoint pending on future shared library load".

一种情形是设置使用dlopen打开的动态库里的断点。

下面通过一个例子说明。

#include <dlfcn.h>
#include <stdio.h>
#include <stdlib.h>int main() {void *handle = dlopen("/usr/lib/x86_64-linux-gnu/libm.so.7", RTLD_LAZY);if (!handle) {printf("dlopen error: %s\n", dlerror());return 1;}double (*sin)(double);sin = dlsym(handle, "sin");char *error = dlerror();if (error != NULL) {printf("dlsym error: %s\n", error);return 1;}printf("sin(0.5) = %f\n", sin(0.5));dlclose(handle);return 0;
}
~                   

编译出二进制文件。用GDB设置断点到sin:

(gdb) b sin
Function "sin" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (sin) pending.
(gdb) r
Starting program: ..
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".Breakpoint 1, __sin_fma (x=0.5) at ../sysdeps/ieee754/dbl-64/s_sin.c:201
201	../sysdeps/ieee754/dbl-64/s_sin.c: No such file or directory.
(gdb) bt
#0  __sin_fma (x=0.5) at ../sysdeps/ieee754/dbl-64/s_sin.c:201
#1  0x0000555555555278 in main () at 2.c:22
(gdb) 


http://www.mrgr.cn/news/35519.html

相关文章:

  • 【Linux】进程的概念
  • vue之axios根据某个接口创建实例,并设置headers和超时时间,捕捉异常
  • 用 Python 从零开始创建神经网络(六):优化(Optimization)介绍
  • gitlab与jenkins
  • 三天精通一种算法之螺旋矩阵(设计思路),长度最小子数组(滑动窗口)
  • Ruby编程语言全景解析:从基础到进阶
  • 【初阶数据结构】排序——插入排序
  • 阴影的基本原理
  • Linux驱动开发初识
  • mysql学习教程,从入门到精通,SQL RIGHT JOIN语句(24)
  • Robot Operating System——多边形数据
  • [大语言模型-论文精读] Diffusion Model技术-通过时间和空间组合扩散模型生成复杂的3D人物动作
  • Thread , ThreadLocal , ThreadLocalMap , Entry 之间的关系?
  • 宝塔部署vue项目出现的各种问题
  • 【算法】模拟:(leetcode)6.Z 字形变换(medium)
  • 光子架与电子架 -- 主从子架
  • 小程序面板开发教程|开发照明 Matter 面板步骤(一)
  • WebGL阴影与后期处理
  • Taro多端统一开发解决方案
  • 多线程:死锁
  • 从 Oracle 集群到单节点环境(详细记录一次数据迁移过程)之二:生产服务器的备份操作
  • 前端读取PDF和DOCX文件(干货分享)
  • 【C++】Eclipse技巧汇总
  • ATTCK实战系列-Vulnstack靶场内网域渗透(二)
  • [docker][软件]docker快速安装rabbitmq
  • 每日一练:二叉树的层序遍历