Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 36247|Válasz: 2

[Forrás] vs Mi és miért generálódnak .pdb fájlok

[Linket másol]
Közzétéve 2018. 01. 16. 15:43:04 | | |
Mire való a PDB fájl?

PDB fájlok: Amit minden fejlesztőnek tudnia kell

Példa PDB forgatókönyvre:

.net/c# log4net hibakivétel nem rögzíti a sorszám okát
http://www.itsvse.com/thread-3928-1-1.html
(Forrás: Architect)


Mi az a PDB fájl?

A legtöbb fejlesztőnek tudnia kell, hogy a PDB fájlokat a szoftveres hibakeresés segítésére használják. De pontosan hogyan működik, azt talán nem ismerjük. Ez a cikk a PDB fájlok tárolását és tartalmát írja le. Azt is leírja, hogyan találja meg a hibakereső a binay-hoz tartozó PDB fájlt, és hogyan találja meg a biny-hez tartozó forráskódfájlt. Ez a cikk minden natív és menedzselt fejlesztőnek szól.

Mielőtt elkezdenénk, definiáljunk két fogalmat: privát build, amely a fejlesztő saját gépén generált buildet jelöl; A nyilvános build, ami egy nyilvános gépen generált build buildet jelent. A magán építés viszonylag egyszerű, mert a PDB és a binay ugyanott van, és általában a nyilvános építéssel kapcsolatos problémák jelentkeznek.  

A legfontosabb, amit minden fejlesztőnek tudnia kell, hogy "a PDB fájlok ugyanolyan fontosak, mint a forráskód", amelyek nélkül még hibakeresést sem lehet elérni. Nyilvános építésnél a szimbólumszervernek tárolnia kell az összes PDB-t, és amikor a felhasználó hibát jelent, a hibakereső automatikusan megtalálja a megfelelő PDB fájlt binayben, és mind a Visual Studio, mind a Windbg tudja, hogyan lehet hozzáférni a szimbólumszerverhez. Mielőtt a PDB és a binay szimbólumszerverre tárolná, a PDB futtatását is forrásindexelni kell, ami a PDB és a forrás összekapcsolása.  

A következő rész feltételezi, hogy a Szimbólumszerver és a Forrásszerver Indexelés már be van állítva. TFS2010 egyszerűen elérhető a forrásindexeléssel és a szimbólumszerver másolásával egy új buildhez.

2. A PDB fájl tartalma

Hivatalosan is elindítva a PDB tartalmát, a PDB nem nyilvánosan elérhető fájlformátum, de a Microsoft API-t biztosít, amely segít adatokat szerezni a PDB-ről.

A natív C++ PDB a következő információkat tartalmazza:
* nyilvános, privát és statikus funkciós címek;
* A globális változó neve és címe;
* Paraméter- és helyi változónevek és eloszlatások a veremen;
* osztály, struktúra és adatok típusmeghatározása;
* Frame Pointer kihagyási adatok a natív stack áthaladásához x86-on;
* A forráskód fájl neve és sorszáma;

A .NET PDB csak két információs részt tartalmaz:
* Forráskódfájl neve és sorszám;
* és a helyi változó neve;
* Minden egyéb adat már szerepel a . NET metaadat;  





Előző:A Visual Studio hozzáadja a Vim erős szerkesztési képességét, hogy megnehezítse a megelőzést!
Következő:SQL Server levelküldése adatbázisok segítségével (sp_send_dbmail)
Közzétéve 2018. 01. 16. 15:44:18 |
 Háziúr| Közzétéve 2022. 12. 08. 21:44:33 |
A VS 2022 beállítja a projektet, hogy .pdb fájlt generáljon
https://www.itsvse.com/thread-10397-1-1.html
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com