Nm - Lệnh Linux - Lệnh Unix

nm - liệt kê các ký hiệu từ các tệp đối tượng

TÓM TẮC

nm [ -a | --debug-syms ] [ -g | - chỉ dành cho bên ngoài ]
[ -B ] [ -C | --demangle [= style ]] [ -D | --dynamic ]
[ -S | --print-size ] [ -s | --print-armap ]
[ -A | -o | --print-file-name ]
[ -n | -v | --numeric-sort ] [ -p | --no-sort ]
[ -r | - sắp xếp lại ] [ --size-sort ] [ -u | - chỉ được xác định trước ]
[ -t radix | --radix = radix ] [ -P | --portability ]
[ --target = bfdname ] [ Định dạng -f | --format = format ]
[ --đã xác định chỉ ] [ -l | --line-number ] [ --no-demangle ]
[ -V | --version ] [ -X 32_64 ] [ --help ] [ objfile ...]

SỰ MIÊU TẢ

GNU nm liệt kê các ký hiệu từ các tệp đối tượng objfile .... Nếu không có tệp đối tượng nào được liệt kê dưới dạng đối số, nm giả định tệp a.out .

Đối với mỗi biểu tượng, nm cho thấy:

*

Giá trị ký hiệu, trong cơ số được chọn bởi các tùy chọn (xem bên dưới), hoặc hệ thập lục phân theo mặc định.

*

Loại biểu tượng. Ít nhất các loại sau được sử dụng; những người khác, cũng như, tùy thuộc vào định dạng tệp đối tượng. Nếu chữ thường, ký hiệu là địa phương; nếu chữ hoa, ký hiệu là toàn cục (bên ngoài).

A

Giá trị của biểu tượng là tuyệt đối và sẽ không bị thay đổi khi liên kết thêm.

B

Biểu tượng nằm trong phần dữ liệu chưa được khởi tạo (được gọi là BSS).

C

Biểu tượng là phổ biến. Biểu tượng phổ biến là dữ liệu chưa được khởi tạo. Khi liên kết, nhiều biểu tượng phổ biến có thể xuất hiện cùng tên. Nếu biểu tượng được xác định ở bất kỳ đâu, các ký hiệu chung được coi là các tham chiếu không xác định.

D

Biểu tượng nằm trong phần dữ liệu được khởi tạo.

G

Biểu tượng nằm trong phần dữ liệu được khởi tạo cho các đối tượng nhỏ. Một số định dạng tệp đối tượng cho phép truy cập hiệu quả hơn vào các đối tượng dữ liệu nhỏ, chẳng hạn như biến int toàn cầu trái ngược với mảng toàn cục lớn.

tôi

Biểu tượng là một tham chiếu gián tiếp đến một biểu tượng khác. Đây là một GNUextension cho định dạng tệp đối tượng a.out hiếm khi được sử dụng.

N

Biểu tượng là biểu tượng gỡ lỗi.

R

Biểu tượng nằm trong phần dữ liệu chỉ đọc.

S

Biểu tượng nằm trong phần dữ liệu chưa được khởi tạo cho các đối tượng nhỏ.

T

Biểu tượng nằm trong phần văn bản (mã).

U

Biểu tượng không xác định.

V

Biểu tượng là một đối tượng yếu. Khi một biểu tượng được xác định yếu được liên kết với một biểu tượng được xác định bình thường, biểu tượng được xác định thông thường được sử dụng không có lỗi. Khi một biểu tượng không xác định yếu được liên kết và biểu tượng không được xác định, giá trị của ký hiệu yếu trở thành số không có lỗi.

W

Biểu tượng là một biểu tượng yếu không được gắn thẻ cụ thể dưới dạng biểu tượng đối tượng yếu. Khi một biểu tượng được xác định yếu được liên kết với một biểu tượng được xác định bình thường, biểu tượng được xác định thông thường được sử dụng không có lỗi. Khi một biểu tượng không xác định yếu được liên kết và biểu tượng không được xác định, giá trị của ký hiệu yếu trở thành số không có lỗi.

- -

Biểu tượng là một biểu tượng stabs trong một tệp đối tượng a.out. Trong trường hợp này, các giá trị tiếp theo được in là các trường đâm khác, trường desc stabs và kiểu đâm. Biểu tượng Stabs được sử dụng để giữ thông tin gỡ lỗi.

?

Loại ký hiệu không xác định hoặc định dạng tệp đối tượng cụ thể.

*

Tên biểu tượng.

TÙY CHỌN

Các dạng tùy chọn dài và ngắn, được hiển thị ở đây dưới dạng các lựa chọn thay thế, là tương đương.

-A

-o

--print-file-name

Trước mỗi biểu tượng bằng tên của tệp đầu vào (hoặc thành viên lưu trữ) mà nó được tìm thấy, thay vì chỉ xác định tệp đầu vào một lần duy nhất, trước tất cả các ký hiệu của nó.

-a

--debug-syms

Hiển thị tất cả các ký hiệu, ngay cả các biểu tượng chỉ có trình sửa lỗi; thông thường chúng không được liệt kê.

-B

Giống như --format = bsd (để tương thích với MIPS nm ).

-C

--demangle [= kiểu ]

Giải mã ( demangle ) tên biểu tượng cấp thấp thành tên cấp người dùng. Bên cạnh việc loại bỏ bất kỳ dấu gạch dưới ban đầu nào được thêm vào trước bởi hệ thống, điều này làm cho các tên hàm C ++ có thể đọc được. Trình biên dịch khác nhau có phong cách mangling khác nhau. Đối số kiểu tùy chọn demangling tùy chọn có thể được sử dụng để chọn kiểu demangling thích hợp cho trình biên dịch của bạn.

--no-demangle

Không làm hỏng tên biểu tượng cấp thấp. Đây là mặc định.

-D

- động lực học

Hiển thị các ký hiệu động thay vì các biểu tượng bình thường. Điều này chỉ có ý nghĩa đối với các đối tượng động, chẳng hạn như một số loại thư viện được chia sẻ nhất định.

-f định dạng

--format = format

Sử dụng định dạng định dạng đầu ra, có thể là "bsd", "sysv" hoặc "posix". Mặc định là "bsd". Chỉ có ký tự đầu tiên của định dạng là quan trọng; nó có thể là chữ hoa hoặc chữ thường.

-g

- chỉ ngoại vi

Chỉ hiển thị các biểu tượng bên ngoài.

-l

- số-dòng

Đối với mỗi biểu tượng, hãy sử dụng thông tin gỡ lỗi để tìm tên tệp và số dòng. Đối với một biểu tượng được xác định, hãy tìm số dòng của địa chỉ của biểu tượng. Đối với một biểu tượng không xác định, hãy tìm số dòng của một mục nhập tái định nghĩa đề cập đến biểu tượng. Nếu có thể tìm thấy thông tin về số dòng, hãy in nó sau thông tin biểu tượng khác.

-n

-v

--numeric-sort

Sắp xếp các biểu tượng theo số lượng các địa chỉ của chúng, thay vì theo thứ tự bảng chữ cái theo tên của chúng.

-p

--no-sort

Đừng bận tâm sắp xếp các ký hiệu theo thứ tự bất kỳ; in chúng theo thứ tự gặp phải.

-P

- tính di động

Sử dụng định dạng đầu ra tiêu chuẩn POSIX.2 thay vì định dạng mặc định. Tương đương với -f posix .

-S

--cỡ in

Kích thước in của các ký hiệu được xác định cho định dạng đầu ra "bsd".

-S

- dấu tay

Khi liệt kê các biểu tượng từ các thành viên lưu trữ, bao gồm chỉ mục: ánh xạ (được lưu trữ trong kho lưu trữ bởi ar hoặc ranlib ) trong đó các mô-đun chứa các định nghĩa cho tên nào.

-r

- sắp xếp lại

Đảo ngược thứ tự sắp xếp (cho dù là số hay chữ cái); để người cuối cùng đến trước.

--size-sort

Sắp xếp biểu tượng theo kích thước. Kích thước được tính là sự chênh lệch giữa giá trị của biểu tượng và giá trị của biểu tượng với giá trị cao hơn tiếp theo. Kích thước của biểu tượng được in, thay vì giá trị.

-troix

--radix = radix

Sử dụng radix làm cơ số để in các giá trị ký hiệu. Nó phải là d cho thập phân, o cho bát phân, hoặc x cho hệ thập lục phân.

--target = bfdname

Chỉ định một định dạng mã đối tượng khác với định dạng mặc định của hệ thống của bạn.

-u

- chỉ được xác định

Chỉ hiển thị các ký hiệu không xác định (các biểu tượng bên ngoài cho mỗi tệp đối tượng).

- chỉ được xác định

Chỉ hiển thị các ký hiệu được xác định cho từng tệp đối tượng.

-V

--phiên bản

Hiển thị số phiên bản của nm và thoát.

-X

Tùy chọn này được bỏ qua để tương thích với phiên bản AIX của nm . Phải có một tham số phải là chuỗi 32_64 . Chế độ mặc định của AIX nm tương ứng với -X 32 , không được hỗ trợ bởi GNU nm .

--Cứu giúp

Hiển thị tóm tắt các tùy chọn để nm và thoát.

XEM THÊM

ar (1), objdump (1), ranlib (1) và các mục Thông tin cho các binutils .

Quan trọng: Sử dụng lệnh man ( % man ) để xem cách một lệnh được sử dụng trên máy tính cụ thể của bạn.