day1—readelf帮大忙

Posted TiWalker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day1—readelf帮大忙相关的知识,希望对你有一定的参考价值。

想想写个专栏,记录日常遇到的问题小结,作为一个系列,方便自己记录查阅。我觉得文章标题我就这个序号,然后写完后提取个关键字作为标题。
1.ldd 和 readelf 遇到了一个进程二进制,依赖的so中有两个so都有main函数,但是不知道为啥,其中cmake依赖的链接顺序是对的,但就是链接顺序靠后的so中的main函数反倒被跑到,其中链接顺序就是根据ldd或者readelf看的,我觉得放在前面的so可能太靠前了,以至于有可能它依赖后面的so,然后cmake调整了顺序,将它的链接顺序调后了,以至于之行到第二个不想执行的main函数。

2.有个终端调程序,只有一个终端,用gdb调子进程的启动,话说gdb调子进程虽然也可以调,但是总觉得不方便。后面同事说,可以后台起程序,然后gdb attach 子进程,确实后台之行程序,就没有那些打印,也不用gdb父进程。

3.gdb调程序,call参数,需要传参,可以直接申请内存作为参数。

4.结构体数组全局变量,可以打印变量地址,然后+指定数字,然后去内容。变量地址用&,取变量用$,取内容用*

以上是关于day1—readelf帮大忙的主要内容,如果未能解决你的问题,请参考以下文章

day1—readelf帮大忙

readelf的使用

readelf用法小记

readelf -s 不输出完整的变量名

Mac OS X 的类似 readelf 的工具? [关闭]

readelf与动态库