日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

查看函数库.a函数符号信息

發(fā)布時(shí)間:2024/7/23 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 查看函数库.a函数符号信息 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、概述
nm命令可以列出一個(gè)函數(shù)庫文件中的符號(hào)表。它對(duì)于靜態(tài)的函數(shù)庫和共享的函數(shù)庫都起作用。對(duì)于一個(gè)給定的函數(shù)庫,nm命令可以列出函數(shù)庫中定義的所有符號(hào),包括每個(gè)符號(hào)的值和類型。還可以給出在原程序中這個(gè)函數(shù)(符號(hào))是在多少行定義的,不過這必須要求編譯該函數(shù)庫的時(shí)候加“-l”選項(xiàng)。?

關(guān)于符號(hào)的類型,這里我們?cè)俣嘤懻撘幌隆7?hào)的類型是以一個(gè)字母的形式顯示的,小寫字母表示這個(gè)符號(hào)是本地(local)的,而大寫字母則表示這個(gè)符號(hào)是全局的(global,externel)。一般來說,類型有一下幾種:T、D、B、U、W。各自的含義如下:T表示在代碼段中定義的一般變量符號(hào);D表示時(shí)初始化過的數(shù)據(jù)段;B表示初始化的數(shù)據(jù)段;U表示沒有定義的,在這個(gè)庫里面使用了,但是在其他庫中定義的符號(hào);W,weak的縮寫,表示如果其他函數(shù)庫中也有對(duì)這個(gè)符號(hào)的定義,則其他符號(hào)的定義可以覆蓋這個(gè)定義。?
二、nm命令詳述:

用途

查看函數(shù)庫.a函數(shù)符號(hào)信息

顯示關(guān)于對(duì)象文件、可執(zhí)行文件以及對(duì)象文件庫里的符號(hào)信息。


語法

nm?[?-A?] [?-C?] [?-X?{32|64|32_64}]?[?-f?] [?-h?] [?-l?] [?-p?] [?-r?] [?-T?] [?-v?] [?-B?|?-P?] [?-e?|?-g?|?-u?] [?-d?|?-o?|?-x?|?-t?Format?]?File?...


描述

nm?命令顯示關(guān)于指定?File?中符號(hào)的信息,文件可以是對(duì)象文件、可執(zhí)行文件或?qū)ο笪募臁H绻募]有包含符號(hào)信息,nm?命令報(bào)告該情況,但不把它解釋為出錯(cuò)條件。?nm?命令缺省情況下報(bào)告十進(jìn)制符號(hào)表示法下的數(shù)字值。

nm?命令把以下符號(hào)信息寫入標(biāo)準(zhǔn)輸出:對(duì)象名,如果您指定了?-A?選項(xiàng),則?nm?命令只報(bào)告與該文件有關(guān)的或者庫或者對(duì)象名。

  • nm?命令使用以下符號(hào)(用同樣的字符表示弱符號(hào)作為全局符號(hào))之一來表示文件符號(hào)類型:

    • 符號(hào)名稱 ? ?符號(hào)類型
    A Global absolute 符號(hào)。
    aLocal absolute 符號(hào)。
    BGlobal bss 符號(hào)。
    bLocal bss 符號(hào)。
    DGlobal data 符號(hào)。
    dLocal data 符號(hào)。
    f源文件名稱符號(hào)。
    TGlobal text 符號(hào)。
    tLocal text 符號(hào)。
    U未定義符號(hào)。
  • 如果可應(yīng)用,nm?命令報(bào)告與符號(hào)有關(guān)的大小。

標(biāo)志

-A 每行或者顯示全路徑名稱或者顯示對(duì)象庫名。
-B在 Berkeley 軟件分發(fā)(BSD)格式中顯示輸出:?

值 類型 名稱
-C限制解碼(demangle) C++ 名稱。缺省是解碼所有 C++ 符號(hào)名。? 注: C++ 對(duì)象文件中的符號(hào)在被使用前它們的名稱已經(jīng)被解碼了。
-d用十進(jìn)制顯示符號(hào)的值和大小。這是缺省的。
-e只顯示靜態(tài)的和外部的(全局)符號(hào)。
-f顯示完整的輸出,包括冗余的 .text、 .data 以及 .bss 符號(hào),這些在通常都是被限制的。
-g只顯示外部的(全局)符號(hào)。
-h限制輸出頭數(shù)據(jù)的顯示。
-l通過給 WEAK 符號(hào)的編碼鍵附加一個(gè) * 來區(qū)分 WEAK 和 GLOBAL 符號(hào)。如果和?-P?選項(xiàng)一起使用, WEAK 符號(hào)的符號(hào)類型顯示如下:? V?
Weak Data 符號(hào)?
W?
Weak Text 符號(hào)?
w?
Weak 未定義符號(hào)?
Z?
Weak bss 符號(hào)?
-o用八進(jìn)制而不是十進(jìn)制數(shù)來顯示符號(hào)的值和大小。
-P以標(biāo)準(zhǔn)可移植輸出格式顯示信息:?

庫/對(duì)象名  名稱 類型 值 大小

該格式以十六進(jìn)制符號(hào)表示法顯示數(shù)字值,除非您用?-t-d?或?-o?標(biāo)志指定不同的格式。

如果您指定了?-A?標(biāo)志?-P?標(biāo)志只顯示?庫/對(duì)象名字段。同樣,-P?標(biāo)志只顯示大小適用的符號(hào)大小字段。

-p不排序。輸出按符號(hào)表順序打印。
-r倒序排序。
-T把可能會(huì)溢出它的列的每個(gè)名字截短,使顯示的名字的最后一個(gè)字符是星號(hào)(*)。缺省情況下,nm?顯示列出的符號(hào)的全名,并且一個(gè)比為其設(shè)置的列的寬度長的名稱會(huì)引起名稱后的每個(gè)列無法對(duì)齊。
-t?Format顯示指定格式下的數(shù)字值,其中?Format?參數(shù)是以下符號(hào)表示法之一:? d
十進(jìn)制符號(hào)表示法。這是?nm?命令的缺省格式。?
o
八進(jìn)制符號(hào)表示法。?
x
十六進(jìn)制符號(hào)表示法。?
-u只顯示未定義符號(hào)。
-v按值而不是按字母表順序排序輸出。
-x用十六進(jìn)制而不是十進(jìn)制數(shù)來顯示符號(hào)的值和大小。
-X?mode指定?nm?應(yīng)該檢查的對(duì)象文件的類型。?mode?必須是下列之一:? 32?
只處理 32 位對(duì)象文件?
64?
只處理 64 位對(duì)象文件?
32_64?
處理 32 位和 64 位對(duì)象文件?

缺省是處理 32 位對(duì)象文件(忽略 64 位對(duì)象)。?mode?也可以?OBJECT_MODE?環(huán)境變量來設(shè)置。例如,OBJECT_MODE=64?使?nm?處理任何 64 位對(duì)象并且忽略 32 位對(duì)象。?-X?標(biāo)志覆蓋?OBJECT_MODE?變量。

注: nm?命令支持?--?(雙連字符)標(biāo)志。如果文件名會(huì)被曲解為一個(gè)選項(xiàng),該標(biāo)志區(qū)別于?File?操作數(shù)。例如,要指定文件名以連字符開始,請(qǐng)使用?--?標(biāo)志。

退出狀態(tài)

該命令返回下列出口值:

0 成功完成。
>0發(fā)生錯(cuò)誤。

示例

  • 列出?a.out?對(duì)象文件的靜態(tài)和外部符號(hào),請(qǐng)輸入:?

    nm -e a.out
  • 以十六進(jìn)制顯示符號(hào)大小和值并且按值排序符號(hào),請(qǐng)輸入:?

    nm -xv a.out
  • 顯示?libc.a?中所有 64 位對(duì)象符號(hào),忽略所有 32 位對(duì)象:?

    nm -X64 /usr/lib/libc.a
  • 文件

    /usr/ccs/bin/nm 包含?nm?命令。

    總結(jié)

    以上是生活随笔為你收集整理的查看函数库.a函数符号信息的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。