婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Linux下查看.so和可執行文件是否debug編譯的方法(必看)

Linux下查看.so和可執行文件是否debug編譯的方法(必看)

熱門標簽:益陽400電話申請辦理流程 梧州防封電銷卡 400的電話一般從哪里辦理 昆明電銷機器人價格 春運地圖標注app 怎么用百度地圖標注坐標 地圖標注人員分布 上海機器人外呼系統哪家好 江西全自動外呼系統報價

今天同事問我,如何判斷一個.so是否是debug編譯的。

我記得以前自己是用file來查看一個.so,根據是否包含"not stripped"來判斷該.so是否是debug編譯的,于是就沒做實驗就回答。

然而,stripped/not stripped并不是debug/release編譯的判斷標準. 我對debug和release的.so運行file后,得出幾乎相同的輸出, 都是not stripped. 所以我算是誤導同事了。

根據Computers Systems - A Programmer's Perspective>所言, debug/release的區別更多的表現在.so和可執行程序所擁有的段上。debug編譯出來的。so和可執行程序擁有很多附加的段來包含哪些debug的信息。 所以查看段信息是一種判斷的方式。

我在Ubuntu 11.04上分別對同一個開源軟件進行debug和release編譯,并且查看某個.so的段(readelf -S),發現release編譯的只有29個段:

There are 29 section headers, starting at offset 0x1b7d78:
Section Headers:
[Nr] Name Type Address Offset
Size EntSize Flags Link Info Align
[ 0] NULL 0000000000000000 00000000
0000000000000000 0000000000000000 0 0 0
[ 1] .note.gnu.build-i NOTE 00000000000001c8 000001c8
0000000000000024 0000000000000000 A 0 0 4
[ 2] .gnu.hash GNU_HASH 00000000000001f0 000001f0
0000000000003430 0000000000000000 A 3 0 8
[ 3] .dynsym DYNSYM 0000000000003620 00003620
000000000000b400 0000000000000018 A 4 2 8
[ 4] .dynstr STRTAB 000000000000ea20 0000ea20
00000000000083e2 0000000000000000 A 0 0 1
[ 5] .gnu.version VERSYM 0000000000016e02 00016e02
0000000000000f00 0000000000000002 A 3 0 2
[ 6] .gnu.version_r VERNEED 0000000000017d08 00017d08
0000000000000080 0000000000000000 A 4 2 8
[ 7] .rela.dyn RELA 0000000000017d88 00017d88
0000000000009570 0000000000000018 A 3 0 8
[ 8] .rela.plt RELA 00000000000212f8 000212f8
00000000000080d0 0000000000000018 A 3 10 8
[ 9] .init PROGBITS 00000000000293c8 000293c8
0000000000000018 0000000000000000 AX 0 0 4
[10] .plt PROGBITS 00000000000293e0 000293e0
00000000000055f0 0000000000000010 AX 0 0 4
[11] .text PROGBITS 000000000002e9d0 0002e9d0
0000000000144658 0000000000000000 AX 0 0 16
[12] .fini PROGBITS 0000000000173028 00173028
000000000000000e 0000000000000000 AX 0 0 4
[13] .rodata PROGBITS 0000000000173040 00173040
000000000001e9a0 0000000000000000 A 0 0 32
[14] .eh_frame_hdr PROGBITS 00000000001919e0 001919e0
000000000000427c 0000000000000000 A 0 0 4
[15] .eh_frame PROGBITS 0000000000195c60 00195c60
0000000000017d7c 0000000000000000 A 0 0 8
[16] .ctors PROGBITS 00000000003ae1e8 001ae1e8
0000000000000010 0000000000000000 WA 0 0 8
[17] .dtors PROGBITS 00000000003ae1f8 001ae1f8
0000000000000010 0000000000000000 WA 0 0 8
[18] .jcr PROGBITS 00000000003ae208 001ae208
0000000000000008 0000000000000000 WA 0 0 8
[19] .data.rel.ro PROGBITS 00000000003ae220 001ae220
0000000000005b38 0000000000000000 WA 0 0 32
[20] .dynamic DYNAMIC 00000000003b3d58 001b3d58
00000000000001a0 0000000000000010 WA 4 0 8
[21] .got PROGBITS 00000000003b3ef8 001b3ef8
00000000000010e8 0000000000000008 WA 0 0 8
[22] .got.plt PROGBITS 00000000003b4fe8 001b4fe8
0000000000002b08 0000000000000008 WA 0 0 8
[23] .data PROGBITS 00000000003b7b00 001b7b00
0000000000000158 0000000000000000 WA 0 0 32
[24] .bss NOBITS 00000000003b7c58 001b7c58
0000000000000010 0000000000000000 WA 0 0 8
[25] .comment PROGBITS 0000000000000000 001b7c58
000000000000002a 0000000000000001 MS 0 0 1
[26] .shstrtab STRTAB 0000000000000000 001b7c82
00000000000000f5 0000000000000000 0 0 1
[27] .symtab SYMTAB 0000000000000000 001b84b8
000000000000fdb0 0000000000000018 28 788 8
[28] .strtab STRTAB 0000000000000000 001c8268
000000000000b8b0 0000000000000000 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings), l (large)
I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
O (extra OS processing required) o (OS specific), p (processor specific)

而debug編譯的則有38個段, 且所有比release編譯多出來的段,都是以.debug_作為開始字符串來命名的:

There are 38 section headers, starting at offset 0xdacc00:
Section Headers:
[Nr] Name Type Address Offset
Size EntSize Flags Link Info Align
[ 0] NULL 0000000000000000 00000000
0000000000000000 0000000000000000 0 0 0
[ 1] .note.gnu.build-i NOTE 00000000000001c8 000001c8
0000000000000024 0000000000000000 A 0 0 4
[ 2] .gnu.hash GNU_HASH 00000000000001f0 000001f0
0000000000003620 0000000000000000 A 3 0 8
[ 3] .dynsym DYNSYM 0000000000003810 00003810
000000000000c000 0000000000000018 A 4 2 8
[ 4] .dynstr STRTAB 000000000000f810 0000f810
0000000000008ccb 0000000000000000 A 0 0 1
[ 5] .gnu.version VERSYM 00000000000184dc 000184dc
0000000000001000 0000000000000002 A 3 0 2
[ 6] .gnu.version_r VERNEED 00000000000194e0 000194e0
0000000000000070 0000000000000000 A 4 2 8
[ 7] .rela.dyn RELA 0000000000019550 00019550
0000000000009b40 0000000000000018 A 3 0 8
[ 8] .rela.plt RELA 0000000000023090 00023090
0000000000008388 0000000000000018 A 3 10 8
[ 9] .init PROGBITS 000000000002b418 0002b418
0000000000000018 0000000000000000 AX 0 0 4
[10] .plt PROGBITS 000000000002b430 0002b430
00000000000057c0 0000000000000010 AX 0 0 4
[11] .text PROGBITS 0000000000030bf0 00030bf0
00000000001d2428 0000000000000000 AX 0 0 16
[12] .fini PROGBITS 0000000000203018 00203018
000000000000000e 0000000000000000 AX 0 0 4
[13] .rodata PROGBITS 0000000000203040 00203040
00000000000276b8 0000000000000000 A 0 0 32
[14] .eh_frame_hdr PROGBITS 000000000022a6f8 0022a6f8
00000000000059dc 0000000000000000 A 0 0 4
[15] .eh_frame PROGBITS 00000000002300d8 002300d8
000000000001715c 0000000000000000 A 0 0 8
[16] .ctors PROGBITS 0000000000448018 00248018
0000000000000010 0000000000000000 WA 0 0 8
[17] .dtors PROGBITS 0000000000448028 00248028
0000000000000010 0000000000000000 WA 0 0 8
[18] .jcr PROGBITS 0000000000448038 00248038
0000000000000008 0000000000000000 WA 0 0 8
[19] .data.rel.ro PROGBITS 0000000000448040 00248040
0000000000005b38 0000000000000000 WA 0 0 32
[20] .dynamic DYNAMIC 000000000044db78 0024db78
00000000000001a0 0000000000000010 WA 4 0 8
[21] .got PROGBITS 000000000044dd18 0024dd18
00000000000012d0 0000000000000008 WA 0 0 8
[22] .got.plt PROGBITS 000000000044efe8 0024efe8
0000000000002bf0 0000000000000008 WA 0 0 8
[23] .data PROGBITS 0000000000451be0 00251be0
0000000000000160 0000000000000000 WA 0 0 32
[24] .bss NOBITS 0000000000451d40 00251d40
0000000000000040 0000000000000000 WA 0 0 16
[25] .comment PROGBITS 0000000000000000 00251d40
0000000000000054 0000000000000001 MS 0 0 1
[26] .debug_aranges PROGBITS 0000000000000000 00251d94
00000000000030c0 0000000000000000 0 0 1
[27] .debug_pubnames PROGBITS 0000000000000000 00254e54
000000000000b8cb 0000000000000000 0 0 1
[28] .debug_info PROGBITS 0000000000000000 0026071f
000000000097f69b 0000000000000000 0 0 1
[29] .debug_abbrev PROGBITS 0000000000000000 00bdfdba
0000000000028211 0000000000000000 0 0 1
[30] .debug_line PROGBITS 0000000000000000 00c07fcb
0000000000075fbf 0000000000000000 0 0 1
[31] .debug_str PROGBITS 0000000000000000 00c7df8a
0000000000019789 0000000000000001 MS 0 0 1
[32] .debug_loc PROGBITS 0000000000000000 00c97713
0000000000043528 0000000000000000 0 0 1
[33] .debug_pubtypes PROGBITS 0000000000000000 00cdac3b
00000000000d1c97 0000000000000000 0 0 1
[34] .debug_ranges PROGBITS 0000000000000000 00dac8d2
00000000000001c0 0000000000000000 0 0 1
[35] .shstrtab STRTAB 0000000000000000 00daca92
000000000000016e 0000000000000000 0 0 1
[36] .symtab SYMTAB 0000000000000000 00dad580
0000000000014688 0000000000000018 37 1437 8
[37] .strtab STRTAB 0000000000000000 00dc1c08
000000000000e5a1 0000000000000000 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings), l (large)
I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
O (extra OS processing required) o (OS specific), p (processor specific)

對于可執行文件也有類似的區別。

所以這應當是判斷debug/release的一個比較正確的方法了。

===================================

命令

readelf -S libxxx.so |grep debug

以上這篇Linux下查看.so和可執行文件是否debug編譯的方法(必看)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • IntelliJ IDEA遠程Debug Linux的Java程序,找問題不要只會看日志了(推薦)
  • 詳解linux 下安裝軟件tar.gz, rpm,deb的方法
  • Debian配置JDK1.7 與Linux Java Helloworld
  • 在Debian系的Linux中編譯并安裝ixgbe驅動的教程
  • 在Debian系的Linux中檢查軟件包是否被安裝的方法
  • Windows和Linux中php代碼調試工具Xdebug的安裝與配置詳解
  • linux服務器系統CentOS、uBuntu、Gentoo、FreeBSD、Debian的比較
  • Linux VPS安全設置之一 修改SSH端口(CentOS/Debian)
  • Linux deb包解壓、修改等操作方法代碼示例

標簽:懷化 北京 贛州 惠州 河南 亳州 新疆 九江

巨人網絡通訊聲明:本文標題《Linux下查看.so和可執行文件是否debug編譯的方法(必看)》,本文關鍵詞  Linux,下,查看,.so,和,可執行,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux下查看.so和可執行文件是否debug編譯的方法(必看)》相關的同類信息!
  • 本頁收集關于Linux下查看.so和可執行文件是否debug編譯的方法(必看)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    成人综合婷婷国产精品久久免费| 国产欧美一区二区在线| 欧美一区二区三区在线看| 国产精品―色哟哟| 欧美日韩精品三区| 欧美精选一区二区| 欧美日韩精品欧美日韩精品一 | 日韩精品电影在线| 精品播放一区二区| 欧美性受xxxx| 欧美美女黄视频| 欧美日韩国产免费一区二区 | 91久久香蕉国产日韩欧美9色| 另类欧美日韩国产在线| 老司机精品视频一区二区三区| 美女网站色91| 激情综合色播激情啊| 国精品**一区二区三区在线蜜桃| 日日夜夜精品免费视频| 久久疯狂做爰流白浆xx| 国产一本一道久久香蕉| 成a人片亚洲日本久久| 99riav久久精品riav| 欧美日韩二区三区| 久久午夜羞羞影院免费观看| 国产精品免费观看视频| 亚洲婷婷综合色高清在线| 亚洲国产日韩a在线播放性色| 久久精品av麻豆的观看方式| 91麻豆精东视频| 久久久综合视频| 亚洲国产中文字幕| 丁香另类激情小说| 精品日韩在线观看| 天天影视色香欲综合网老头| 成人午夜激情在线| 精品国产sm最大网站| 亚洲成a人v欧美综合天堂下载 | 国产高清在线精品| 欧美丰满一区二区免费视频| 久久精品夜色噜噜亚洲aⅴ| 亚洲国产精品久久不卡毛片| 99热精品国产| 欧美国产成人在线| 国产激情视频一区二区三区欧美| 欧洲在线/亚洲| 一区二区在线观看av| 国产成a人亚洲| 中文文精品字幕一区二区| 国产一区二区在线观看免费| 日韩三级伦理片妻子的秘密按摩| 国产不卡在线播放| 一本到高清视频免费精品| 成人网页在线观看| 日韩精品一级二级| 免播放器亚洲一区| 日av在线不卡| 国产亚洲美州欧州综合国| 国产成人福利片| 在线观看日产精品| 91精品国产色综合久久久蜜香臀| 在线精品观看国产| 91理论电影在线观看| 亚洲欧美日韩人成在线播放| 91精品国模一区二区三区| 视频一区免费在线观看| 久久久亚洲午夜电影| 欧美中文字幕一区| 国内外成人在线| 91麻豆精品国产| 天天爽夜夜爽夜夜爽精品视频| 97aⅴ精品视频一二三区| 日本在线不卡一区| 精品国产一区二区在线观看| 亚洲成国产人片在线观看| 久久久午夜精品| 欧美四级电影在线观看| 国产不卡视频在线观看| 五月天精品一区二区三区| 日本一区二区成人在线| 日韩一卡二卡三卡四卡| 在线观看视频91| 99精品久久免费看蜜臀剧情介绍| 蜜桃视频免费观看一区| 亚洲国产精品久久人人爱| 亚洲国产精品成人综合色在线婷婷 | 国产清纯白嫩初高生在线观看91 | 国产成人精品一区二区三区四区| 自拍偷拍国产精品| 久久久蜜桃精品| 久久精品夜夜夜夜久久| 久久你懂得1024| 久久香蕉国产线看观看99| 日韩美女在线视频| 精品99999| 国产欧美日韩久久| 欧美国产亚洲另类动漫| 国产精品污www在线观看| 国产视频一区在线观看| 综合久久久久久久| 国产欧美精品一区二区色综合| 国产精品久久久久婷婷| 一区二区三区在线视频观看58| 亚洲欧洲制服丝袜| 天天操天天综合网| 成人精品亚洲人成在线| 欧美日韩在线播放| 中文一区一区三区高中清不卡| 亚洲一二三级电影| 国产在线视频不卡二| 欧洲亚洲国产日韩| 久久伊99综合婷婷久久伊| 青青草原综合久久大伊人精品优势| 久久精品无码一区二区三区| 亚洲已满18点击进入久久| 国产一区二区主播在线| 欧美群妇大交群的观看方式| 国产精品久久一卡二卡| 性做久久久久久| 在线免费视频一区二区| 国产精品免费av| 国产v综合v亚洲欧| 欧美国产激情一区二区三区蜜月| 韩国欧美一区二区| 国产午夜亚洲精品理论片色戒| 亚洲1区2区3区4区| 91精品国产91久久综合桃花| 亚洲图片欧美色图| 国产乱妇无码大片在线观看| 男男视频亚洲欧美| 一区二区三区精品久久久| 综合在线观看色| 亚洲精品国久久99热| 久久久精品国产99久久精品芒果| 91精品国产麻豆国产自产在线| 在线精品视频小说1| 成人一级片网址| 国产精品一区免费视频| 日本二三区不卡| 精品久久人人做人人爱| 欧美一区二区三区成人| 91麻豆精品国产91久久久使用方法 | 免费观看久久久4p| 国产美女久久久久| 日韩欧美亚洲国产另类| 国产一区二区三区久久久| 国产欧美精品一区二区色综合朱莉| 紧缚奴在线一区二区三区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产剧情一区二区| 国产日产欧美一区二区视频| 成人美女视频在线观看18| 亚洲精品成人天堂一二三| 欧美成人性战久久| 精品免费国产二区三区| 国产成人av电影| 亚洲成av人片| 中国色在线观看另类| 欧美三区在线观看| 国产精品一区二区在线观看网站| 久久欧美一区二区| 色婷婷狠狠综合| 国产69精品久久久久777| 一区二区不卡在线视频 午夜欧美不卡在| 国产精品一区在线观看你懂的| 欧美国产成人在线| 欧美一区二区在线免费观看| 91丨porny丨户外露出| 国产伦精品一区二区三区免费| 国产日产欧美一区二区视频| 337p亚洲精品色噜噜狠狠| 99国产麻豆精品| 一本一道久久a久久精品综合蜜臀| 国产精品亚洲人在线观看| 另类专区欧美蜜桃臀第一页| 舔着乳尖日韩一区| 日韩精品一卡二卡三卡四卡无卡| 午夜久久久影院| 国产精品一二三区| 国产成人av一区二区三区在线 | 国产又黄又大久久| 激情偷乱视频一区二区三区| 国产欧美一区视频| 亚洲欧美日韩系列| 一区二区三区**美女毛片| 亚洲一区二区三区四区中文字幕| 亚洲欧美日韩一区二区 | 韩国欧美一区二区| 色8久久精品久久久久久蜜| 在线成人小视频| 精品精品国产高清a毛片牛牛| 欧美亚洲丝袜传媒另类| 精品国产不卡一区二区三区| 亚洲人一二三区| 99精品国产99久久久久久白柏| 97精品久久久久中文字幕| 精品少妇一区二区三区 | 久久久久久久久久久久久女国产乱| 久久亚洲欧美国产精品乐播| 亚洲国产精品影院|