
调试
mw_nice
这个作者很懒,什么都没留下…
展开
-
利用脚本-一键导出段错误的函数反汇编
#!/bin/bashbin=$1func=$2function print_help() { echo "use: disassembly.sh <bin> <func | addr> 0x[offset]" echo " ex 1. disassembly.sh a.out main 1c ---> number 1c means 0x1c" echo " ex 2. disassembly.原创 2020-12-28 10:31:56 · 129 阅读 · 0 评论 -
linux下so动态库调用主程序函数
linux下动态库今天无意间发现在linux下share object(dynamic library)中的函数竟然可以不通过回调的方式直接访问主程序中的函数,瞬间颠覆以前对于动态库的观念.1、如代码所示libhi.so中有一个函数hello, 主程序main中有一个函数hi_out, 那么在main中调用libhi.so中的hello时,hello会自动找到main程序中的hi_output函数地址, 然后进行调用.=================hi.c 编译为 libhi.so=...原创 2020-08-27 10:06:46 · 4506 阅读 · 1 评论 -
int指令(软件中断指令__软件调试)__gdb调试中断断点原理
INT(软件中断指令)是CALL指令的一种特殊形式。call指令调用调用的子程序是用户程序的一部分,而INT指令调用的操作系统提供的子程序或者其他特殊的子程序。中断服务子程序和标准过程的最大区别是 汇编程序可以有任意个过程,中断服务子程序最多有256个过程、INT指令共有四中不同的格式:《1》 int n n是中断号,这就允许用户程序调用256个中断服务子程序...转载 2019-11-07 17:11:03 · 2975 阅读 · 0 评论 -
gcc选项-g与-rdynamic的异同
gcc选项-g与-rdynamic的异同gcc的-g,应该没有人不知道它是一个调试选项,因此在一般需要进行程序调试的场景下,我们都会加上该选项,并且根据调试工具的不同,还能直接选择更有针对性的说明,比如-ggdb。-g是一个编译选项,即在源代码编译的过程中起作用,让gcc把更多调试信息(也就包括符号信息)收集起来并将存放到最终的可执行文件内。相比-g选项,-rdynamic却...转载 2019-10-18 10:29:18 · 1285 阅读 · 0 评论 -
使用readelf和objdump解析目标文件
引言本文是对程序员的自我修养:链接、装载与库中第3章的实践总结(和结构相关的示意图都是用Gliffy Diagrams画的转载 2018-12-08 15:38:42 · 329 阅读 · 0 评论 -
C/C++中的段错误(Segmentation fault)
Segment fault 之所以能够流行于世,是与Glibc库中基本所有的函数都默认型参指针为非空有着密切关系的。来自:http://oss.lzu.edu.cn/blog/article.php?uid_7/tid_700.html#comment背景最近一段时间在linux下用C做一些学习和开发,但是由于经验不足,问题多多。而段错误就是让我非常头痛的一个问题。不...转载 2019-06-13 09:43:58 · 1531 阅读 · 0 评论 -
gdb调试带参数的程序_argv
例子:#include <stdio.h>int main(int argc,char *argv[]){ int i = argc; printf("argc:%d\n",i); for(i = 0;i < argc;i++) printf("argv[%d]:%s\n",i,argv[i]); return ...原创 2019-09-18 17:56:06 · 4982 阅读 · 0 评论