linux 目标文件调试】的更多相关文章

前言如果普通编程不需要了解这些东西,如果想精确控制你的对象文件的格式或者你想查看一下文件对象里的内容以便作出某种判断,刚你可以看一下下面的工具:objdump, nm, ar.当然,本文不可能非常详细的说明它们的使用方法和功能.如果你觉得本文不够清楚,你可以使用:man. 我的计划只是想让更多的人了解这些工具,以后在今后 的编程过程中能有所帮助. 操作系统: Linux 开始 库文件操作命令:ar ----非常好的东东..让你能查看函数库里的详细情况和用多个对象文件生成一个库文件. 经常用法:…
linux目标文件 一个简单的程序被编译成目标文件后的结构如下: 从图可以看出,已初始化的全局变量和局部静态变量保存在 .data段中,未初始化的全局变量和未初始化的局部静态变量保存在 .bss段中. 目标文件各个段在文件中的布局如下: 各个段介绍: init段: 程序初始化入口代码,在main() 之前运行. bss段: BSS段属于静态内存分配.通常是指用来存放程序中未初始化的全局变量和未初始化的局部静态变量.未初始化的全局变量和未初始化的局部静态变量默认值是0,本来这些变量也可以放到dat…
1. 多目标文件的链接 摘自:linux c编程一站式学习 http://learn.akae.cn/media/index.html 可以学会在linux下将多个c语言文件一起编译. 现在我们把例 12.1 “用堆栈实现倒序打印”拆成两个程序文件,stack.c实现堆栈,而main.c使用堆栈: /* stack.c */ char stack[512]; int top = -1; void push(char c) { stack[++top] = c; } char pop(void)…
http://www.cnblogs.com/li-hao/archive/2011/09/25/2190278.html 在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息).使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数. 1.core文件的生成开关和大小限制 (1)使用ulimit -c命令可查看core文件的生成开关.若结果为0,则表示关闭了此功能,不会生成core文件. (2)使用ulimit -c filesiz…
转自于:http://blog.csdn.net/fcryuuhou/article/details/8507775 在程序遇到段错误不寻常退出时,一般是访问内存出错.但是不会给出程序哪里出现的问题,这个时候就需要core文件来帮助调试. 内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息).使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数. 1.core文件的生成开关和大小限制 1)使用ulimit -c命令可查看core文件的生成开关.若结果…
要求:写一个linux bash脚本来查看目标文件夹下所有的file和directory,并且打印出他们的绝对路径. 运行command:./myDir.sh  input_path  output_result 要求输出格式为: 代码思路: BFS遍历,数据结构为queue,数组实现. 代码实现: #!/bin/bash SAVEIFS=$IFS IFS=$(echo -en "\n\b") #处理特殊字符文件名 queue[]="head" path_[]=''…
1 动态查看日志 tail -f filename tail -1000f filename 2 解压当前目录内容为xxx.zip  zip -r xxx.zip ./* 3 查看内存使用情况 free -m 4 vim批量替换字符串:%s/source_str/target_str/g 使用场景,个人博客网站移植新服务器过程中,用户文章文件之前保存的图片地址带有原服务器ip,需要批量替换为新服务器ip,用这个方法很合适. 5 Linux shell中获取日期:DATE=$(date +%Y%m…
这是linux中一个非常重要命令,请大家一定要熟悉.它的功能是为某一个文件或目录在另外一个位置建立一个同步的链接,类似Windows下的超级链接. 这个命令最常用的参数是-s,具体用法是:sudo ln -s 源文件 目标文件 举例: 当前目录是/local,而我经常要访问/usr/local/linux/work 那么我就可以使用在local下建立一个文件linkwork, 然后sudo ln -s /usr/local/linux/work  /local/linkwork 即建立两者之间的…
文章来源:华清远见嵌入式学院,原文地址:http://www.embedu.org/Column/Column699.htm 作者:冯老师,华清远见嵌入式学院讲师. 1. 程序源码如下: 2.命令 gcc –E simple_section.c –o simple_section.i         gcc –S simple_section.i –o simple_section.s         gcc –c simple_section.s –o simple_section.o    …
http://blog.chinaunix.net/uid-27018250-id-3867588.html bss 未初始化的全局数据 data 已经初始化的全局数据 text 代码段,机器指令 rodata 字符串常量 参考:<程序员自我修养> 代码编译后的机器指令经常被放在代码段里,代码段名为".text";已初始化的全局变量和已初始化的局部静态变量经常放在数据段里,数据段名为".data";未初始化的全局变量和未初始化局部静态变量一般放在“.bs…