Đây là lệnh dwz có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
dwz - tối ưu hóa DWARF và công cụ loại bỏ trùng lặp
SYNOPSIS
dwz [TÙY CHỌN ...] [FILES]
MÔ TẢ
lùn là một chương trình cố gắng tối ưu hóa thông tin gỡ lỗi DWARF có trong ELF
thư viện được chia sẻ và tệp thực thi ELF cho kích thước, bằng cách thay thế thông tin DWARF
biểu diễn với biểu diễn nhỏ hơn tương đương nếu có thể và bằng cách giảm
số lượng sao chép bằng cách sử dụng các kỹ thuật từ phụ lục E tiêu chuẩn của DWARF - tạo
DW_TAG_partial_đơn vị đơn vị biên dịch (CUs) cho thông tin trùng lặp và sử dụng
DW_TAG_nhập khẩu_đơn vị để nhập nó vào mỗi CU cần nó.
Công cụ xử lý các phần gỡ lỗi định dạng DWARF 32-bit của phiên bản 2, 3 và 4 và GNU
phần mở rộng ở trên cùng của những phần mở rộng đó, mặc dù sử dụng DWARF 4 hoặc trường hợp xấu nhất là DWARF 3
khuyến khích.
Công cụ này có hai chế độ hoạt động chính, không có -m tùy chọn nó cố gắng tối ưu hóa
Thông tin gỡ lỗi DWARF trong mỗi đối tượng nhất định (thư viện thực thi hoặc chia sẻ)
riêng lẻ, với -m tùy chọn nó sau đó cố gắng tối ưu hóa hơn nữa bằng cách di chuyển
Các mục nhập thông tin gỡ lỗi DWARF (DIE), chuỗi và mô tả macro được sao chép trong
nhiều đối tượng vào một đối tượng ELF ET_REL mới được tạo có tên tệp được cấp là -m
đối số tùy chọn. Các phần gỡ lỗi trong tệp thực thi và thư viện được chia sẻ được chỉ định trên
dòng lệnh sau đó được sửa đổi một lần nữa, đề cập đến các thực thể trong
vật.
LỰA CHỌN
-m FILE --multifile FILE
Chế độ đa tệp. Sau khi xử lý tất cả các tệp thực thi được đặt tên và thư viện được chia sẻ,
cố gắng tạo đối tượng ELF FILE và đưa thông tin gỡ lỗi trùng lặp vào nhiều hơn
hơn một đối tượng ở đó, sau đó tối ưu hóa từng thư viện thực thi hoặc chia sẻ được đặt tên
thậm chí xa hơn nếu có thể.
-h --liên kết cứng
Tìm kiếm tệp thực thi hoặc thư viện được chia sẻ được liên kết cứng với nhau, thay vì viết lại
họ viết lại một cách riêng lẻ chỉ một trong số chúng và liên kết cố định phần còn lại với phần đầu tiên
một lần nữa.
-M TÊN --tên nhiều tập tin TÊN
Chỉ định tên của tệp chung sẽ được đưa vào .gnu_debugaltlink
cùng với ID bản dựng của nó. Theo mặc định lùn đặt ở đó đối số của
-m tùy chọn.
-r --quan hệ
Chỉ định rằng tên của tệp chung sẽ được đưa vào .gnu_debugaltlink
phần được cho là đường dẫn tương đối từ thư mục chứa
thư viện thực thi hoặc được chia sẻ cho tệp có tên trong đối số của -m tùy chọn.
Hay -M or -r tùy chọn có thể được chỉ định, nhưng không phải cả hai.
-q --Yên lặng
Tắt tiếng một số tin nhắn phổ biến nhất.
-o FILE - đầu ra FILE
Tùy chọn này hướng dẫn lùn không ghi đè lên tệp được chỉ định mà thay vào đó lưu trữ
nội dung mới vào FILE. Không có gì được viết nếu lùn lối ra có lối ra khác XNUMX
mã số. Chỉ có thể được sử dụng với một thư viện thực thi hoặc chia sẻ duy nhất (nếu không có
đối số ở tất cả, a.ra được giả định).
-l ĐẾM --low-mem-die-giới hạn ĐẾM
Xử lý tệp thực thi hoặc thư viện được chia sẻ có chứa nhiều hơn ĐẾM gỡ lỗi
mục thông tin trong họ .debug_info phần sử dụng bộ nhớ chậm hơn và nhiều hơn
sử dụng chế độ thân thiện và không cố gắng tối ưu hóa đối tượng đó ở chế độ đa tệp.
Giá trị mặc định là 10 triệu DIE. Có một rủi ro là đối với một lượng rất lớn
gỡ lỗi thông tin trong một thư viện được chia sẻ duy nhất hoặc tệp thực thi có thể không có
đủ bộ nhớ (đặc biệt là khi lùn công cụ là 32-bit nhị phân, nó có thể hết
không gian địa chỉ ảo có sẵn thậm chí sớm hơn).
-L ĐẾM - giới hạn tối đa ĐẾM
Đừng cố gắng tối ưu hóa các tệp thực thi hoặc các thư viện được chia sẻ có chứa nhiều hơn
ĐẾM DIE ở tất cả. Giá trị mặc định là 50 triệu DIE.
-? --Cứu giúp
In trợ giúp ngắn và thoát.
-v --phiên bản
In số phiên bản và thông báo cấp phép ngắn và thoát.
TRANH LUẬN
Các đối số dòng lệnh phải là tệp thực thi, thư viện được chia sẻ hoặc bị tước thành
tập tin các đối tượng thông tin gỡ lỗi riêng biệt.
VÍ DỤ
$ dwz -m .dwz / foobar-1.2.debug -rh \
bin / foo.debug bin / foo2.debug foo / lib / libbar.so.debug
sẽ cố gắng tối ưu hóa thông tin gỡ lỗi trong bin / foo.debug, bin / foo2.debug và
lib / libbar.so.debug (bằng cách sửa đổi các tệp tại chỗ) và khi có lợi cũng sẽ tạo
.dwz / foobar-1.2.debug tập tin. .gnu_debugaltlink trong hai tệp đầu tiên sẽ đề cập đến
đến ../.dwz/foobar-1.2.debug và trong tệp cuối cùng ../../.dwz/foobar-1.2.debug. Nếu vd
bin / foo.debug và bin / foo2.debug được liên kết cứng với nhau ban đầu, chúng sẽ
được liên kết cứng một lần nữa và để tối ưu hóa nhiều tệp tin chỉ được coi là một tệp tin duy nhất
hơn hai.
$ dwz -o foo.dwz foo
sẽ không sửa đổi foo nhưng thay vào đó, lưu trữ đối tượng ELF với thông tin gỡ lỗi được tối ưu hóa
nếu thành công vào foo.dwz tệp mà nó tạo ra.
$ dwz * .debug foo / *. gỡ lỗi
sẽ cố gắng tối ưu hóa thông tin gỡ lỗi trong các tệp gỡ lỗi * .debug và foo / *.,
tối ưu hóa từng tệp riêng lẻ tại chỗ.
$dwz
tương đương với lùn a.ra chỉ huy.
Sử dụng dwz trực tuyến bằng các dịch vụ onworks.net