وصف أداة DUMPBIN المساعدة

ملخص

تجمع أداة DUMPBIN المساعدة، التي يتم توفيرها مع الإصدار 32 بت من Microsoft Visual C++، بين قدرات أدوات LINK و LIB و EXEHDR المساعدة. يتميز تركيب هذه الأدوات بالقدرة على توفير معلومات حول التنسيق والرموز المتوفرة في الملفات التنفيذية وملفات المكتبة وملفات DLL.

توفر هذه المقالة لمحة موجزة عن بعض الخيارات والإخراج الذي تم إنتاجه بواسطة أداة DUMPBIN المساعدة. لمزيد من المعلومات حول أداة DUMPBIN، راجع وثائق المنتج.

مزيد من المعلومات

خيارات سطر الأوامر DUMPBIN مذكورة أدناه. يتم أيضًا سرد بعض عمليات الإخراج المتوفرة كل خيار.

/ALL يقوم بعرض كافة المعلومات المتوفرة فيما عدا فك تجميع التعليمات البرمجية. استخدام الخيار/DISASM لعرض فك التجميع. يمكنك استخدام /RAWDATA:NONE مع الخيار /ALL لحذف تفاصيل الملف الثنائية الأولية.
لأن الخيار /ALL يعتبر ببساطة مجموعة من كافة الخيارات الأخرى، لا توجد حاجة لأي مثال.
/ARCHIVEMEMBERS يعرض حدًا أدنى من المعلومات حول الكائنات الأعضاء في مكتبة.
يعتمد حجم ملف الإخراج على عدد الوحدات النمطية للكائن في المكتبة. ما يلي جزء من الإخراج من الملف Scrnsave.lib:

Archive member name at 582: /0        ..\..\common\retail\scrnsave.obj
2FF359CC time/date Thu Jun 29 18:56:28 1995
uid
gid
100666 mode
214A size
correct header end

/DISASM يعرض فك تجميع أقسام الأكواد واستخدام الرموز إذا كان موجودًا في الملف.
ما يلي جزء من فك تجميع التعليمات البرمجية من ملف Lib.exe:

00401000: 8B 44 24 08        mov         eax,dword ptr [esp+8]
00401004: 68 00 20 40 00 push 402000h
00401009: 8B 4C 24 08 mov ecx,dword ptr [esp+8]
0040100D: 50 push eax
0040100E: 51 push ecx
0040100F: E8 0C 00 00 00 call 00401020
00401014: 33 C0 xor eax,eax
00401016: C3 ret
00401017: CC int 3

/EXPORTS يعرض كافة التعريفات المصدرة من ملف تنفيذي أو DLL.
MFC40. ينتج ملف DLL المعلومات الصادرة التالية:


يحتوي القسم على الصادرات التالية ل MFC40. DLL
          0 characteristics
30733286 time date stamp Wed Oct 04 18:19:02 1995
0.00 version
1 ordinal base
5782 number of functions
4 number of names

ordinal hint name

2 0 DllCanUnloadNow (00096182)
1 1 DllGetClassObject (0009611E)
3 2 DllRegisterServer (000961DB)
4 3 DllUnregisterServer (00096242)

/FPO يعرض سجلات تحسين مؤشر الإطار (FPO).
إحدى مكتبات MFC، Nafxis.lib، قدم لنا بعض الأمثلة عن سجلات تحسين مؤشر الإطار:
FPO Data (1)
Use Has Frame
Address Proc Size Locals Prolog BP SEH Type Params
00000000 9 0 0 N N fpo 0

FPO Data (1)
Use Has Frame
Address Proc Size Locals Prolog BP SEH Type Params
00000000 11 0 0 N N fpo C

FPO Data (1)
Use Has Frame
Address Proc Size Locals Prolog BP SEH Type Params
00000000 3 0 0 N N fpo 0

/HEADERS يعرض رأس الملف ورأس لكل مقطع. عند استخدامها مع مكتبة، فإنه يعرض رأس لكل كائن عضو.
يتم عرض هذه المعلومات من "مورد المترجم"، Rc.exe:

FILE HEADER VALUES
14C machine (i386)
6 number of sections
306F7A22 time date stamp Sun Oct 01 22:35:30 1995
0 file pointer to symbol table
1D1 number of symbols
E0 size of optional header
302 characteristics
Executable
32 bit word machine
Debug information stripped

OPTIONAL HEADER VALUES
10B magic #
2.60 linker version
1E00 size of code
1E00 size of initialized data
0 size of uninitialized data
1144 address of entry point
1000 base of code
3000 base of data
----- new -----
2BB0000 image base
1000 section alignment
200 file alignment
3 subsystem (Windows CUI)
4.00 operating system version
4.00 image version
3.50 subsystem version
8000 size of image
400 size of headers
62C8 checksum
100000 size of stack reserve
1000 size of stack commit
100000 size of heap reserve
1000 size of heap commit
0 [ 0] address [size] of Export Directory
5000 [ 3C] address [size] of Import Directory
6000 [ 394] address [size] of Resource Directory
0 [ 0] address [size] of Exception Directory
0 [ 0] address [size] of Security Directory
7000 [ 21C] address [size] of Base Relocation Directory
3030 [ 38] address [size] of Debug Directory
0 [ 0] address [size] of Description Directory
0 [ 0] address [size] of Special Directory
0 [ 0] address [size] of Thread Storage Directory
0 [ 0] address [size] of Load Configuration Directory
268 [ 44] address [size] of Bound Import Directory
50A0 [ 64] address [size] of Import Address Table Directory
0 [ 0] address [size] of Reserved Directory
0 [ 0] address [size] of Reserved Directory
0 [ 0] address [size] of Reserved Directory

SECTION HEADER #1
.text name
1D24 virtual size
1000 virtual address
1E00 size of raw data
400 file pointer to raw data
0 file pointer to relocation table
3C20 file pointer to line numbers
0 number of relocations
37E number of line numbers
60000020 flags
Code
(no align specified)
Execute Read

/IMPORTS يعرض كافة تعريفات الواردة من ملف تنفيذي أو DLL.
يتشابه الإخراج المعروض هنا مع الإخراج /EXPORTS.
/LINENUMBERS يعرض أرقام أسطر COFF. تكون أرقام الأسطر موجودة في ملف كائن إذا تم تجميعه باستخدام "برنامج قاعدة البيانات" (/Zi) C7 متوافق مع (/Z7)، أو تبديلات خط أرقام (/Zd) فقط. يحتوي الملف التنفيذي أو DLL على أرقام أسطر COFF إذا تم ربطها بإنشاء معلومات التصحيح (/DEBUG) وتنسيق COFF لخيارات (/DEBUGTYPE:COFF).
تطبيق تم إنشاؤه باستخدام AppWizard يعرض بيانات معلومات السطر كالتالي:

LINENUMBERS #1
1E90 13 1ECD 13 1EF7 13 1F16 13 1F31 15
1F46 15 1F61 24 1F9A 27 1FD0 2A 2001 2B

/LINKERMEMBER [: {1|2}] يعرض الرموز العامة المعرفة في مكتبة. تحديد وسيطة واحدة لعرض رموز حسب ترتيب الكائنات، جنبا إلى جنب مع إزاحاتهم. تحديد الوسيطة الثانية لعرض الإزاحات وأرقام فهرس الكائنات ثم سرد الرموز بالترتيب الأبجدي، جنبًا إلى جنب مع فهرس الكائن كل واحد. للحصول على الإخراجين، حدد /LINKERMEMBER بدون الرقم الوسيط.
تم استخدام Winmmm.lib، مكتبة الوسائط المتعددة في Windows، للحصول على نموذج الإخراج التالي UMPBIN.
Archive member name at 8: / 
2FB537E1 time/date Sat May 13 15:51:13 1995
uid
gid
0 mode
2864 size
correct header end

391 public symbols

556C _CloseDriver@12
58A0 _DefDriverProc@20
5BDC _DriverCallback@28
5F1C _DrvGetModuleHandle@4
626A _GetDriverModuleHandle@4
65C4 _NotifyCallbackData@20
6914 _OpenDriver@12
6C44 _PlaySound@12
6F70 _PlaySoundA@12
72A0 _PlaySoundW@12

/OUT:filename تعين اسم ملف للإخراج. بشكل افتراضي، يعرض DUMPBIN المعلومات على الإخراج القياسي.

/RAWDATA [: {بايت | SHORTS| LONGS| بلا}]، رقم [] عرض المحتويات الأولية لكل مقطع في الملف. تتحكم الوسائط في تنسيق العرض كما هو موضح أدناه:
Argument    Result

BYTES The default. Contents are displayed in hexadecimal bytes,
and also as ASCII characters if they have a printed
representation.
SHORTS Contents are displayed as hexadecimal words.
LONGS Contents are displayed as hexadecimal longwords.
NONE Raw data is suppressed. This argument is useful to control
the output of /ALL.
number Displayed lines are set to a width that holds <number> values
per line.

المعلومات التي تم إنشاؤها باستخدام هذا الخيار كبيرة جدًا، وهذا نموذج صغير للإخراج من تطبيق AppWizard باستخدام التنسيق LONGS:
RAW DATA #1
00000000 53EC8B55 00A15756 | E9004058 00000000 U[ASCII 239]_SVW[ASCII
237].|X@._...._
00000010 C95B5E5F EC8B55C3 | 5304EC83 4D895756 _^[++U[ASCII
239]_|[ASCII 226]_.SVW[ASCII 235]M_
00000020 3058B8FC 00E90040 | 5F000000 C3C95B5E n+X0@._.|..._^[++_

/RELOCATIONS يعرض أي تغيير للمواقع في الكائن أو الصورة.

فيما يلي جزء صغير من إخراج تغيير الموقع الذي تم الحصول عليه من تطبيق AppWizard:
BASE RELOCATIONS #6

1000 virtual address, B0 SizeOfBlock
7 HIGHLOW
22 HIGHLOW
36 HIGHLOW
67 HIGHLOW
89 HIGHLOW

/SECTION:section يقوم بتقييد الإخراج بالمعلومات الموجودة على القسم المحدد.


/SUMMARY يعرض حدًا أدنى من المعلومات حول المقاطع، بما في ذلك الحجم الإجمالي. هذا هو الخيار الافتراضي إذا لم يتم تحديد أي خيار آخر.

Microsoft (R) COFF Binary File Dumper Version 3.00.5270
Copyright (C) Microsoft Corp 1992-1995. All rights reserved.

Dump of file tracer.exe

File Type: EXECUTABLE IMAGE

Summary

1000 .data
1000 .idata
1000 .rdata
1000 .reloc
1000 .rsrc
1000 .text

/SYMBOLS يعرض جدول رموز COFF. جداول الرموز موجودة في كافة ملفات الكائن. تظهر رموز جدول COFF في ملف صورة فقط إذا يتم ربطه معلومات التصحيح التي تم إنشائها وخيارات تنسيق COFF المتوفرة ضمن معلومات التصحيح في فئة التصحيح للرابط (أو خيارات /DEBUG و /DEBUGTYPE:COFF في سطر الأوامر).

تم استخدام تطبيق AppWizard للحصول على المثال التالي:
COFF SYMBOL TABLE
000 000065D0 SECT5 notype Static | .rsrc$02
001 00000011 DEBUG notype Filename | .file
C:\code\test\testView.cpp
004 000041A0 SECT3 notype Static | $SG23289
005 00004018 SECT3 notype Static | _$S189$S23301
006 00004168 SECT3 notype Static | _THIS_FILE$S23282
007 00001E90 SECT1 notype Static | .text
Section length 2DE, #relocs 27, #linenums 22
009 00001EE2 SECT1 notype () Static | _$E188
00A 00001EF7 SECT1 notype () Static | _$E187
tag index 0000002E size 0000001F lines 000012DF next function 00000033
00C 000042AC SECT3 notype Static | __init_CTestView$S23291
00D 00003998 SECT2 notype Static | $T23440
00E 00003978 SECT2 notype Static | $T23438
00F 000039C0 SECT2 notype Static | $T23447
010 000039A0 SECT2 notype Static | $T23446
011 00000021 DEBUG notype Filename | .file

خصائص

رقم الموضوع: 177429 - آخر مراجعة: 12‏/01‏/2017 - المراجعة: 1

تعليقات