开发中的辅助工具

Posted 阿弥陀佛.a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开发中的辅助工具相关的知识,希望对你有一定的参考价值。






演示:
当前有func.c test.c

这里的test.out必须是带调试信息的(gcc -g)
此时会出现core文件:

接下来用dmesg查看文件内容:


会有很多信息,但是只用关注最后ip在访问某一个地址发生错误即可

可以看出在调用func.c时出错,错误发生在func.c的第7行


可以看出剔除调试信息后,文件大小明显变小很多



将.o文件删除后做解压实验:




可以看出func文件里有两个标识符
func在代码段,还没链接所以地址不知道,00000000代表相对代码段的地址偏移是这个
g_pointer,00000004代表占4字节内存


最后将两个.o文件链接:

然后:nm test.out:

链接后,地址就可以确定了




虚存地址和加载地址为什么一样?
test.out执行前要创建进程:

  1. 分配虚存
  2. 将对应的段从test.out拷贝到虚存中对应的位置,虚地址就代表加载的目标地址(加载地址),加载地址指的是段加载的终点
  3. 执行应用程序




以上是关于开发中的辅助工具的主要内容,如果未能解决你的问题,请参考以下文章

开发中的辅助工具

Chrome 开发者工具中的“会话存储”是啥?

如何使用IDEA开发工具中右键中的Git图形化工具

Firefox 开发者工具中的 XHR 断点

为啥在重新计算 chrome 开发工具中的样式之前评估过 js?

如何显示Word中的“开发工具”选项卡?