See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 36247|Vastuse: 2

[Allikas] vs Mida ja miks .pdb faile genereeritakse

[Kopeeri link]
Postitatud 16.01.2018 15:43:04 | | |
Milleks on PDB fail?

PDB failid: Mida iga arendaja peab teadma

PDB stsenaariumi näide:

.net/c# log4net vea erik ei salvesta rea numbri põhjust
http://www.itsvse.com/thread-3928-1-1.html
(Allikas: Arhitekt)


Mis on PDB fail?

Enamik arendajaid peaks teadma, et PDB-faile kasutatakse tarkvaralise silumise abistamiseks. Aga kuidas ta täpselt töötab, seda me ei pruugi teada. See artikkel kirjeldab PDB-failide salvestust ja sisu. See kirjeldab ka, kuidas silur leiab PDB-faili, mis vastab binaile, ja kuidas silur leiab lähtekoodifaili, mis vastab binay'le. See artikkel on mõeldud kõigile natiivsetele ja hallatud arendajatele.

Enne kui alustame, defineerime kaks mõistet: privaatne ehitus, mida kasutatakse arendaja enda masinal genereeritud ehituse tähistamiseks; avalik ehitus, mis tähendab ehitust, mis genereeritakse avaliku ehitusmasina peal. Privaatne ehitus on suhteliselt lihtne, sest PDB ja binay asuvad samas kohas ning tavaliselt on probleemid avaliku ehitusega seotud.  

Kõige olulisem, mida kõik arendajad peavad teadma, on see, et "PDB-failid on sama olulised kui lähtekood", ilma milleta sa isegi siluda ei saa. Avaliku ehituse puhul peab sümboliserver salvestama kõik PDB-d ning kui kasutaja teatab veast, leiab silur automaatselt vastava PDB-faili binay's ning nii Visual Studio kui ka Windbg teavad, kuidas sümboliserverile ligi pääseda. Enne PDB ja binay salvestamist sümboliserverisse tuleb ka PDB käivitamise lähteindeks, mis seob PDB ja allika.  

Järgmine osa eeldab, et sümboliserver ja lähteserveri indekseerimine on juba seadistatud. TFS2010 saab teha nii lihtsalt kui allika indekseerimine ja sümboliserveri kopeerimine uue ehituse jaoks.

2. PDB faili sisu

PDB sisu ametlikult alustades ei ole PDB avalikult kättesaadav failivorming, kuid Microsoft pakub API-d, mis aitab PDB-lt andmeid saada.

Natiivse C++ PDB sisaldab järgmist teavet:
* avalikud, privaatsed ja staatilised funktsiooniaadressid;
* Globaalmuutuja nimi ja aadress;
* Parameetrite ja lokaalsete muutujate nimed ning nihked virnas;
* klassi, struktuuri ja andmete tüübimääratlused;
* Frame Pointer Unmission andmed natiivse virna läbimiseks x86 peal;
* Nimi ja ridade arv lähtekoodifailis;

.NET PDB sisaldab ainult kahte infoosa:
* Lähtekoodifaili nimi ja ridade arv;
* ja lokaalmuutuja nimi;
* Kõik muud andmed on juba lisatud . NET metaandmed;  





Eelmine:Visual Studio lisab Vim'i võimsad monteerimisvõimalused, mis teeb selle ennetamise keeruliseks!
Järgmine:SQL Server saates e-kirju andmebaaside abil (sp_send_dbmail)
Postitatud 16.01.2018 15:44:18 |
 Üürileandja| Postitatud 08.12.2022 21:44:33 |
VS 2022 seadistab projekti .pdb faili genereerimiseks
https://www.itsvse.com/thread-10397-1-1.html
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com