Mô t? c?a các.T?p tin PDB và c?a các.DBG t?p tin

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 121366 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Các.Ph?n m? r?ng PDB là vi?t t?t c?a "chương tr?nh cơ s? d? li?u." Nó gi? đ?nh d?ng m?i đ? lưu tr? thông tin g? l?i đ? đư?c gi?i thi?u trong Visual C++ Phiên b?n 1.0. Trong tương lai, các.T?p tin PDB c?ng s? t? ch?c các d? án khác thông tin nhà nư?c. M?t trong nh?ng đ?ng l?c quan tr?ng nh?t cho s? thay đ?i trong đ?nh d?ng là cho phép gia tăng liên k?t c?a g? l?i phiên b?n c?a chương tr?nh, m?t thay đ?i đ?u tiên đư?c gi?i thi?u trong Visual C++ Phiên b?n 2.0.

Các.Ph?n m? r?ng DBG là vi?t t?t c?a "g? l?i." Các.DBG t?p tin t?o ra v?i các 32-bit NT toolset là ? đ?nh d?ng t?p tin di đ?ng t?p tin th?c thi (PE). Chúng ch?a ph?n v?i COFF, FPO, và trong m?t s? trư?ng h?p Codeview thông tin. Visual C++ tr?nh g? l?i tích h?p có th? đ?c.DBG t?p tin trong Đi?u này đ?nh d?ng, tuy nhiên nó b? qua ph?n bi?u tư?ng COFF và trông Codeview thông tin.

N?u b?n c?n ph?i xác đ?nh nh?ng g? thông tin bi?u tư?ng đư?c ch?a trong m?t.DBG t?p tin, b?n có th? g? sau t?i d?u nh?c l?nh:
Dumpbin sample.dbg/symbol.
				
Chú ý Đư?ng d?n có th? c?n ph?i bao g?m các thư m?c cho Dumpbin.exe và MSdis100.dll:
Path=%Path%;C:\Program Files\DevStudio\VC\bin;C:\Msssdk\bin
				
Đ? bi?t thêm chi ti?t v? DUMPBIN, nh?p vào s? bài vi?t sau đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
177429Ví d? v? s?n lư?ng DUMPBIN

THÔNG TIN THÊM

Các.T?p tin PDB

Th?i gian trư?c đó, 16-bit phiên b?n c?a Visual C++ s? d?ng.T?p tin PDB, các g? l?i thông tin đư?c lưu tr? trong chúng đư?c n?i thêm vào cu?i các.EXE ho?c .File DLL b?i linker. Trong các phiên b?n c?a Visual C++ đư?c đ? c?p ? trên, linker và tr?nh g? l?i tích h?p đư?c c?i ti?n đ? cho phép.PDB t?p s? đư?c s? d?ng tr?c ti?p trong quá tr?nh g? l?i, do đó lo?i b? s? ti?n l?n c?a công vi?c cho linker và c?ng b? qua các rư?m rà CVPACK gi?i h?n c?a các lo?i 64 K.

Đ? bi?t thêm chi ti?t v? CVPACK h?n ch?, nh?p vào s? bài vi?t sau đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
112335L?I: CK1020 ho?c CK4009 g?p ph?i khi thông tin lo?i vư?t quá 64 K
Theo m?c đ?nh, khi b?n xây d?ng các d? án t?o ra b?i s? Workbench tr?c quan, các tr?nh biên d?ch chuy?n /Fd đư?c s? d?ng đ? đ?i tên các.T?p tin PDB đ? <project>.PDB. V? v?y, b?n s? ch? có m?t.T?p tin PDB cho toàn b? d? án. </project>

Khi b?n ch?y makefiles đó đ? không đư?c t?o ra b?i s? Workbench th? giác, và /Fd không đư?c s? d?ng v?i /Zi, b?n s? k?t thúc v?i hai.T?p tin PDB:
  • VCx0.PDB (nơi "x" là phiên b?n chính c?a tương ?ng Visual C++, ho?c "2" ho?c "4"), mà các c?a hàng t?t c? các thông tin g? l?i Đ?i v?i cá nhân.OBJ t?p. Nó n?m trong thư m?c nơi các d? án makefile cư trú.
  • <project>.PDB, mà các c?a hàng t?t c? các thông tin g? l?i cho các k?t qu? .EXE file. Nó n?m trong thư m?c con \WINDEBUG.</project>
T?i sao hai t?p tin? Khi tr?nh biên d?ch đư?c đi?u hành, nó không bi?t tên c?a các .EXE t?p tin vào đó các.OBJ t?p s? đư?c liên k?t, do đó, tr?nh biên d?ch có th? không đ?t thông tin vào <project>.PDB. Hai t?p tin lưu tr? khác nhau thông tin. M?i khi b?n biên d?ch m?t.OBJ t?p tin, tr?nh biên d?ch h?a tr?n các thông tin g? l?i vào VCX0.PDB. Nó không đ?t trong thông tin bi?u tư?ng ch?ng h?n như đ?nh ngh?a ch?c năng. Nó ch? đ?t trong thông tin liên quan đ?n các lo?i. M?t l?i ích c?a đi?u này là khi m?i t?p tin ngu?n bao g?m tiêu đ? ph? bi?n tác ph?m như <windows.h>, t?t c? các typedefs t? các tiêu đ? là ch? lưu tr? m?t l?n, thay v? trong m?i.OBJ t?p. </windows.h></project>

Khi b?n ch?y linker, nó t?o ra <project>.PDB, gi? các thông tin g? l?i cho các d? án.EXE file. T?t c? các l?i thông tin, bao g?m c? nguyên m?u ch?c năng và m?i th? khác, đư?c đ?t vào <project>.PDB, không ch? lo?i thông tin t?m th?y t?i VCX0.PDB. Các hai lo?i s?.T?p tin PDB chia s? cùng m?t ph?n m? r?ng b?i v? h? là ki?n trúc tương t?; c? hai đ?u cho phép gia tăng C?p Nh?t. Tuy nhiên, h? th?c s? lưu tr? thông tin khác nhau. </project></project>

Tr?nh g? l?i Visual C++ m?i s? d?ng <project>.T?p tin PDB t?o ra b?i các Linker tr?c ti?p, và embeds đư?ng d?n tuy?t đ?i đ? các.PDB trong các.EXE ho?c .DLL file. N?u tr?nh g? l?i không th? t?m th?y các.T?p tin PDB t?i v? trí đó ho?c n?u đư?ng d?n không h?p l? (n?u, ví d?, d? án đ? đư?c d?i đ?n khác máy tính), tr?nh g? l?i t?m nó trong thư m?c hi?n hành. </project>

Các.DBG t?p tin

Tr?nh g? l?i Visual C++ tích h?p c?ng có th? s? d?ng.DBG t?p tin mi?n là chúng đư?c làm t? m?t ch?a Codeview d?ng nh? phân g? l?i đ?u ra. Đây là h?u ích đ? g? l?i khi m? ngu?n không có s?n. Th?m chí mà không có ngu?n g?c.DBG t?p tin cho phép b?n thi?t l?p đi?m ng?t vào ch?c năng, xem các bi?n, và xem các ch?c năng trong ngăn x?p cu?c g?i. Chúng c?ng là yêu c?u cho OLE RPC g? l?i.

M?t caveat c?n ph?i đư?c ch? ra: khi làm vi?c v?i các bi?u tư?ng t? m?t.DBG t?p, b?n ph?i s? d?ng tên đ?y đ? trang trí. Ví d?, đ? thi?t l?p m?t breakpoint ngày m?t cu?c g?i đ?n ch?c năng sndPlaySound Windows, b?n s? ch? đ?nh _sndPlaySoundA@8 theo v? trí.

Có th?c s? hai.Đ?nh d?ng t?p tin DBG. Các đ?nh d?ng c? đ? t?n t?i trong khá trong m?t th? gi?i 16-bit. Ví d?, b?i v? các đ?nh d?ng c?a.COM t?p tin là m?t h?nh ?nh đơn gi?n nh? phân đư?c t?i vào b? nh?, g? l?i Codeview thông tin không đư?c n?i vào cu?i c?a t?p tin v? t?p Kích thư?c có th? vư?t quá gi?i h?n 64 K cho m?t.COM t?p. Do đó tư?ng trưng thông tin thay vào đó đ? đư?c đưa vào m?t riêng bi?t.T?p tin DBG, v?n ch? Codeview thông tin trong nó. Các.DBG t?p tin c?ng có th? đư?c t?o ra b?i ch?y CVPACK trên m?t.EXE t?p tin b?ng cách s? d?ng tùy ch?n /strip.

Cho 32-bit.Emerge, Visual C++ Phiên b?n 2.x và bi?u tư?ng 4.x tr?nh g? l?i x? l? không đ?c các đ?nh d?ng c?. Thay vào đó, nó đ?c các đ?nh d?ng đư?c s? d?ng trong Windows NT.DBG t?p tin, đư?c cung c?p đ? s? d?ng v?i h? th?ng c?a nó.T?p tin DLL. Đây.DBG t?p tin có đ?nh d?ng t?p tin di đ?ng t?p tin th?c thi (PE) và ch?a ph?n v?i COFF, FPO, và trong m?t s? trư?ng h?p Codeview tư?ng trưng thông tin. Tr?nh g? l?i Visual C++ m?i l?n đ?c.DBG t?p tin trong đ?nh d?ng này ch?. Hơn n?a, nó ch? s? d?ng thông tin Codeview, b? qua các ph?n bi?u tư?ng khác.

Có th? d?i thông tin g? l?i t? m?t t?p tin PE và c?t gi? nó trong m?t .DBG t?p tin đ? s? d?ng b?i debuggers. Đ? làm vi?c này, tr?nh g? l?i c?n bi?t hay không đ? bi?t thông tin g? l?i trong m?t t?p tin riêng bi?t hay không và li?u các thông tin đ? đư?c tư?c t? các t?p tin hay không. M?t phương pháp s? cho tr?nh g? l?i đ? t?m ki?m thông qua t?p tin th?c thi, t?m ki?m g? l?i thông tin. Tuy nhiên, đ? lưu tr?nh g? l?i t? vi?c t?m ki?m các t?p tin, m?t l?nh v?c đ?c trưng t?p tin (IMAGE_FILE_DEBUG_STRIPPED) đ? đư?c phát minh mà ch? ra r?ng các t?p tin đ? b? tư?c. Debuggers có th? nh?n này trư?ng trong tiêu đ? t?p tin PE đ? nhanh chóng xác đ?nh li?u vi?c g? l?i thông tin là hi?n di?n trong các t?p tin hay không.

Đ? t?o ra m?t.DBG t?p tin trong đ?nh d?ng này, b?n có th? s? d?ng REBASE.EXE, đó là cung c?p Win32 SDK. Xin vui l?ng xem tài li?u Win32 SDK cho thêm chi ti?t.

Trong th?i gian xây d?ng bán l? Windows NT, k? hi?u g? l?i là tư?c t? các h? th?ng t?p tin nh? phân và tr?nh đi?u khi?n và đư?c lưu tr? trong riêng bi?t.DBG t?p tin. Đi?u này đư?c th?c hi?n b?i v? tr?nh g? l?i h?t nhân Windows NT có th? s? d?ng này.DBG t?p tin và cung c?p g? l?i bi?u tư?ng ngay c? đ?i v?i tr?nh đi?u khi?n t?i ưu hóa. H?y nh? r?ng, tuy nhiên, r?ng các Visual C++ tích h?p tr?nh g? l?i không đư?c thi?t k? đ? g? l?i ch? đ? đư?c b?o v? M? kernel.

Windows NT bi?u tư?ng t?p tin có th? đư?c t?m th?y trong thư m?c con g? l?i c?a các \SUPPORT thư m?c trên đ?a CD-ROM bán l? Windows NT. Nh?ng t?p tin này ph?i sao chép t? đ?a CD-ROM ? c?ng c?a b?n. Đ?i v?i ngư?i s? d?ng ch? đ? g? l?i vào các m?c tiêu tr?nh g? l?i máy.DBG bi?u tư?ng ph?i có m?t trong Windows NT \<winnt>Thư m?c \SYMBOLS c?a h? th?ng đích (<winnt> là thư m?c» nơi Windows NT đư?c cài đ?t). Cài đ?t m?i chương tr?nh cài đ?t Visual C++ bi?u tư?ng "NT h? th?ng bi?u tư?ng thi?t l?p" trong nhóm chương tr?nh c?a b?n. B?n có th? s? d?ng nó đ? t? đ?ng sao chép các.DBG t?p tin t? đ?a CD-ROM máy tr?m Windows NT c?a b?n đ?a đ? c?u trúc thư m?c chính xác trên ? c?ng c?a b?n. Phương pháp này không làm vi?c cho Windows NT Server 4.0 CD-ROM v? các.DBG t?p tin đư?c lưu tr? ? đ?nh d?ng nén. </winnt></winnt>

Đ? g? l?i h?t nhân, nơi.DBG t?p tin vào m?t cây bi?u tư?ng bên dư?i các thư m?c đư?c ch? ra b?i các bi?n môi trư?ng _NT_SYMBOL_PATH (cho Ví d?, C:\DEBUG\SYMBOLS). G? l?i h?t nhân có th? v?i m?t t?p t?i thi?u bi?u tư?ng bao g?m các bi?u tư?ng cho t?t c? các tr?nh đi?u khi?n (*.SYS) trong các SYMBOLS\SYS thư m?c, và các bi?u tư?ng cho NTOSKRNL.EXE và HAL.DLL trong các Thư m?c SYMBOLS\EXE và SYMBOLS\DLL, tương ?ng. Đ? bi?t thêm thông tin ngày g? l?i h?t nhân, đ? c?p đ?n các cu?c th?o lu?n liên quan đ?n h?t nhân g? l?i trong Windows NT DDK Programmer's Guide.

Trong khi nó là l? thuy?t có th? đ? chuy?n đ?i t? m?t.T?p tin PDB quay l?i m?t .DBG t?p tin, nó không ph?i là m?t nhi?m v? t?m thư?ng. T?i th?i đi?m này, chúng tôi bi?t không có công c? như v?y. N?u chúng tôi nghe v? công c? như v?y, chúng tôi s? c?p nh?t bài vi?t này trong Microsoft Ki?n th?c cơ s?.

Thu?c tính

ID c?a bài: 121366 - L?n xem xét sau cùng: 17 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft Visual C++ 2.1
  • Microsoft Visual C++ 4.0 Standard Edition
T? khóa: 
kbbug kbdebug kbide kbinfo kbmt KB121366 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:121366
Khước từ Nội dung trong Cơ sở Kiến thức Không còn được hỗ trợ
Bài vi?t này nói v? các s?n ph?m mà Microsoft không c?n h? tr? n?a. Do đó, bài vi?t này đư?c cung c?p "nguyên b?n" và s? không đư?c c?p nh?t.

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com