gdb调试运行程序带参数(调用动态链接库),debug过程记录

GDB 源码分析系列文章五:动态库延迟断点实现机制 如果可执行程序使用动态链接生成,gdb刚启动时,若断点打在动态库的符号上,因为动态库还未加载,gdb会提示该符号找不到,并请求是否设置pending断点,这种断点即为延迟断点。若该符号在动态库中存在,调试过程中会命中该断点。本文结合gdb源码,分析gdb动态库延迟断点的实现机制。另外,对于gdb的事件循环机制和符号表相关实现机制可以参考往期系列博客,本文提到相关内容时不再赘述。............ 阅读详情

1.gdb (运行程序名称)

例如

gdb cbenchmark

 

2.设置运行参数

set args -c 1 -n 1 -F ./libaliww.so -l 1

 

3.如果是多线程程序

set follow-fork-mode child

 

4.设置断点,如果代码是动态链接库.so中的代码系统会提示如提示1

b CWWSimulator.cpp:530

 

提示1:

No source file named CWWSimulator.cpp.
Make breakpoint pending on future shared library load? (y or [n])

输入y,回车

 

经过如上步骤即可断到相关代码

Linux基础——“C语言高级编程” C语言中的细节你真的知道吗? 文章目录GCC简介 GCC简介 gcc 所支持后缀名解释 .c c原始程序 .C / .cc /.cxx C++原始程 阅读详情

相关推荐

发那科FOCAS 1/2文档——核心库文件

在开始开发前,明确目标 CNC 的具体型号、连接方式(HSSB/TCP/IP)、软件版本和配置(如轴数、程序号位数),并据此正确配置开发环境和编译选项。开发时需要包含相应的头文件。这是开发跨平台应用时需要特别注意的地方。这是开发应用时必须了解的核心文件。

snailiot的博客 1021

gdb 笔记(02)— gdb 调试执行(启动调试、添加参数、附加到进程、调试 core 文件)

在编译程序时,使用 gcc 或者 g++ 时一定要加上 -g 选项,以便能够正常调试程序。 1. 启动调试 假设已有二进制文件如下,其中 chapter_3 为可执行文件 $ ls chapter_3 main.cpp Makefile student.cpp student.h teacher.cpp teacher.h $ 执行 gdb 可执行文件名 即可以启动调试,如下图: $ gdb chapter_3 GNU gdb (Ubuntu 8.1.1-0ubuntu1) 8.1.1 C

wohu1104的专栏 6432

RC正弦波振荡电路实验全解析:如何通过调节电容电阻改变输出频率

本文深入解析RC正弦波振荡电路,重点阐述如何通过调节电容和电阻来精确改变输出频率。文章从文氏桥振荡电路的核心原理出发,详细介绍了电容粗调频段与电阻微调频率的实操策略,并分析了元件误差、寄生参数等对实测频率的影响,为电路设计与调试提供了从理论到实践的完整指南。

yhn456789的博客 1114

GDB Debug

如果该文件存在,GDB就会执行该文件中的所有命令。因此,如果你需要在一个架构上调试另一个架构的程序(例如,在x86架构的Linux上调试ARM架构的内核),那么`gdb-multiarch`将会非常有用。5. **开始调试**:现在,你可以像在本地使用GDB一样使用各种GDB命令(如`break`, `run`, `continue`, `next`, `step`, `print`,等等)来调试你的目标程序了。例如,如果你在一个x86架构的Linux系统上,你的`gdb`可能只能调试x86架构的程序。

我的博客 1392

空频、空时、空域、时域、频域抗干扰介绍

1、时域抗干扰:对时间域序列进行滤波,滤波系数h(n),采样序列不断进行输入与滤波系数卷积计算,得到响应输出;例如常用的FIR和IIR滤波器。 对于多窄带干扰噪声源和连续波干扰源有较好的处理效果,还可以解决多径问题; 可以通过在接收机前端处理中增加一个嵌入式块实现; 2、频域抗干扰:接收机不容易受到相对于接收机频带以外的强功率干扰; 通常为带通滤波和阻带滤波, 适用于窄带干扰噪声源,连续波干扰源以及较强的频带外干扰噪声源, 3、空域抗干扰:通过多个自适应天线按照特定组合成天线阵列,波束成形,针对

qq_43517907的博客 7307

PC微信逆向) 读取内存联系人链表

首先从一些网络上搜索到的信息可以得出联系人列表是保存在内存里的,并且是全局变量不会被释放,所以我们可以通过搜索某个联系人的信息来定位

Qwertyuiop2016的博客 2920

【转】gdb调试动态链接库

【原文地址】http://www.microsuncn.com/index.php?title=%E7%94%A8gdb%E8%B0%83%E8%AF%95%E5%8A%A8%E6%80%81%E9%93%BE%E6%8E%A5%E5%BA%93 在 Linux 可以用 gdb 来调试应用程序,当然前提是用 gcc 编译程序时要加上 -g 参数。我这篇文章里将讨论一下用 gdb 来调试...

alteken5150的博客 1141

kepserverEX6创建tcpserver接入自有协议(使用ucon接入)

kepserverEX6创建tcpserver接入自有协议

qq_38388813的博客 1632

【linux】创建和使用动态库 GDB调试工具

创建和使用动态库 GDB调试工具

m0_73189710的博客 1260

从编译到调通:RK3588与FPGA的PCIe XDMA驱动实战解析

本文详细解析了在RK3588平台上为FPGA板卡编译、加载与调试PCIe XDMA驱动的完整实战流程。内容涵盖环境准备、Makefile深度定制、编译排错、驱动加载与内核日志解读、设备节点分析以及用户空间编程实战,旨在帮助开发者打通RK3588与FPGA之间的高速PCIe通信链路,实现稳定可靠的数据传输。

weixin_29304021的博客 484

IMA知识库:从0到1的架构设计与实践

本文探讨了AI时代知识库系统的架构设计与演进路径。通过分析知识入库、知识管理和知识应用三大核心业务流程,提出了应对数据多样性、处理标准化、流量洪峰等挑战的解决方案。重点介绍了基于统一数据格式的解耦设计、异步处理架构、服务拆分策略以及权限安全体系,构建了一个稳定、高效且可扩展的知识库系统。文章强调优秀架构需要持续演进,通过识别薄弱点不断优化,最终实现技术方案与业务需求的平衡。

lovehu6686的博客 1737

gdb-为程序设置运行的参数

有三种方法可以指定程序运行的参数,第一种方法是在命令行上直接指定;第二种方法是通过run命令提供程序运行时的参数;第三种方法是通过set args命令指定程序的参数第一种方法:为程序传递参数5root@guo-virtual-machine:~/debug# gdb --args factorial 5第二种方法:为程序传递参数5(gdb) run 5第三种方法:为程序传递参数5(gdb) set

郭小郭的专栏 2万+

水文仿真软件:HEC-RAS (Hydrologic Engineering Center‘s River Analysis System)_(7).一维非稳态水力模型

自定义脚本是通过编程语言(如 Python)编写的一系列自动化任务,可以帮助用户更高效地处理数据和运行模型。编写脚本:使用 Python 或其他编程语言编写自定义脚本。集成脚本:将脚本集成到 HEC-RAS 中,实现自动化数据处理和模型运行。

kkchenjj的博客 933

linux 中调试器 gdb 的使用

1.基本命令 1)进入GDB  #gdb test   test是要调试的程序,由gcc test.c -g -o test生成。进入后提示符变为(gdb) 。 2)查看源码  (gdb) l   源码会进行行号提示。   如果需要查看在其他文件中定义的函数,在

freeking101的博客 6311

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【GDB】GDB调试总目录

【gdb&core】Linux中gdb 查看core堆栈信息1 https://blog.youkuaiyun.com/bandaoyu/article/details/83312828 【gdb&core】Linux中gdb 查看core堆栈信息2_bandaoyu的笔记-优快云博客 【GDB】GDB 调试多线程和多进程总结 https:...

小鱼菜鸟的博客 361

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

GDB动态库调试避坑指南:从符号缺失到精准断点

本文详细解析了GDB调试动态库时的常见问题与解决方案,包括符号缺失处理、精准断点设置及跨架构调试技巧。通过实战案例演示如何高效定位内存泄漏等问题,帮助开发者掌握动态库调试的核心方法,提升Linux环境下的调试效率。

java5的博客 908

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

HAMI-core 调试

[HAMI-core] 是一个用于拦截CUDA-Driver的动态链接库, 动态库调试相对比较麻烦,这里记录下调试方式

Moolight_shadow的专栏 1134

使用GDB调试C库

用gdb调试程序时,一般的函数都可以step进去,可是C库函数却直接跳过了。 网上找了些资料,记录一下! 1.安装C库的debug版本 sudo apt-get install libc6-dbg 安装完后,在/usr/lib目录下会多出一个debug目录,里面有安装的debug版c库的动态链接文件 2.编译程序,使用debug版本C库 例如程序test.c,使用如下命令编译。

astrotycoon 6216

GDB调试中库路径错误的诊断与修复指南

本文详细解析了GDB调试中常见的库路径错误问题,如堆栈无法解析、符号信息缺失等。通过剖析GDB加载库的机制,提供了使用`info sharedlibrary`、`set solib-search-path`等命令进行诊断,并给出多种修复路径错误的实用方法,帮助开发者快速恢复调试能力。

river的博客 181

GDB调试实战:从error到pre-prompt的调试技巧与避坑指南

在软件开发过程中,调试是不可或缺的一环。GDB作为Linux环境下最强大的调试工具之一,能够帮助开发者深入理解程序运行时的状态,定位和修复各种问题。然而,即使是经验丰富的开发者,在使用GDB时也经常会遇到各种error和pre-prompt问题,这些问题往往会让调试过程变得异常困难。掌握GDB调试技巧需要理论知识和实践经验的结合。通过本文介绍的方法,开发者可以更高效地处理error和pre-prompt相关问题。建立系统的调试流程记录常见问题的解决方案定期更新GDB技能。

2600_94960245的博客 562

ubuntu下Eclipse+CDT+GDB调试android NDK程序

看见一篇介绍android ndk的文章,记录下来,原文链接:http://www.cnblogs.com/shadox/archive/2011/12/02/2272564.html Eclipse+CDT+gdb调试android ndk程序 先介绍一下开发环境,在这个环境下,up主保证是没有问题的。 ubuntu 11.10eclipse 3.7(indego) for jav

2807

编译与调试完全指南—第5章 GDB调试详解

文章摘要 《GDB调试详解》全面介绍Linux下强大的源代码级调试器GDB。文章从启动与连接、程序执行控制、断点设置、数据查看、堆栈分析到多线程/多进程调试等核心功能展开,采用"启动连接→执行控制→断点观察→数据操作→堆栈分析→高级调试→实战场景"的知识体系结构。重点讲解了本地调试、进程附加、交叉调试(使用gdbserver)和Coredump事后分析四种调试场景,并详细说明了GDB启动参数、配置文件.gdbinit的使用方法以及常见调试技巧。该指南是进行嵌入式开发、系统编程和问题定位的重要参考资源。

weixin_43149888的博客 221
上一篇: 如何使core dump生效之unlimit及gdb相关命令(C++)
下一篇: gdb调试运行程序带参数(调用动态链接库),debug过程记录
linkyou
博客等级 码龄25年 587粉丝 179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值