FAIRYFAR-INTERNAL
 
  FAIRYFAR-INTERNAL  |  SITEMAP  |  ABOUT-ME  |  HOME  
区分Linux程序是否为Debug版本

正文

如何判断一个.so是否是debug编译的?

如果用此方法:用file来查看一个.so, 根据是否包含”not stripped”来判断该.so是否是debug编译的。然而stripped/not stripped并不是debug/release编译的判断标准. 对debug和release的.so运行file后可得出几乎相同的输出, 都是not stripped。所以此方法是不准确的。

debug/release的区别更多的表现在.so和可执行程序所拥有的段上。debug编译出来的.so和可执行程序拥有很多附加的段来包含哪些debug的信息。所以查看段信息是一种判断的方式。

对同一个开源软件进行debug和release编译, 并且查看某个.so的段(readelf -S)

snippet.bash
readelf -S  文件名

例子:

[postgres-13@yz219 ~]$ readelf -S /home/postgres-13/postgresql/bin/postgres 
共有 38 个节头,从偏移量 0x241fbc8 开始:

节头:
  [号] 名称              类型             地址              偏移量
       大小              全体大小          旗标   链接   信息   对齐
……
  [25] .data             PROGBITS         0000000000d0e800  0070e800
       000000000000e018  0000000000000000  WA       0     0     32
  [26] .bss              NOBITS           0000000000d1c820  0071c818
       0000000000032468  0000000000000000  WA       0     0     32
  [27] .comment          PROGBITS         0000000000000000  0071c818
       000000000000005a  0000000000000001  MS       0     0     1
  [28] .debug_aranges    PROGBITS         0000000000000000  0071c872
       0000000000008eb0  0000000000000000           0     0     1
  [29] .debug_info       PROGBITS         0000000000000000  00725722
       0000000000f150ed  0000000000000000           0     0     1
  [30] .debug_abbrev     PROGBITS         0000000000000000  0163a80f
       00000000000b3d5d  0000000000000000           0     0     1
  [31] .debug_line       PROGBITS         0000000000000000  016ee56c
       00000000001a7148  0000000000000000           0     0     1
  [32] .debug_str        PROGBITS         0000000000000000  018956b4
       000000000009e650  0000000000000001  MS       0     0     1
  [33] .debug_loc        PROGBITS         0000000000000000  01933d04
       0000000000905368  0000000000000000           0     0     1
  [34] .debug_ranges     PROGBITS         0000000000000000  0223906c
       000000000011d0d0  0000000000000000           0     0     1
……

参考



打赏作者以资鼓励:
移动端扫码阅读:
目录: