Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 36247|Отговор: 2

[Източник] срещу какво и защо се генерират .pdb файлове

[Копирай линк]
Публикувано в 16.01.2018 г. 15:43:04 ч. | | |
За какво служи PDB файлът?

PDB файлове: Това, което всеки разработчик трябва да знае

Пример за сценарий с PDB:

Изключението за грешка в log4net в .NET/C# не записва причината за номера на линия
http://www.itsvse.com/thread-3928-1-1.html
(Източник: Архитект)


Какво е PDB файл?

Повечето разработчици трябва да знаят, че PDB файловете се използват за подпомагане при софтуерно отстраняване на грешки. Но как точно работи, може би не сме запознати. Тази статия описва съхранението и съдържанието на PDB файловете. Той също така описва как дебъгерът намира PDB файла, съответстващ на binay, и как намира изходния кодов файл, съответстващ на binay. Тази статия е за всички Native и Managed разработчици.

Преди да започнем, нека дефинираме два термина: private build, който се използва за означаване на билд, генериран на собствената машина на разработчика; Public Build, което означава билд, генериран на публичен билд машина. частното строителство е сравнително просто, защото PDB и Binay са на едно и също място, а обикновено проблемите са свързани с публичното строителство.  

Най-важното, което всички разработчици трябва да знаят, е, че "PDB файловете са също толкова важни, колкото и изходният код", без които дори не можеш да дебъгнеш. За публична конфигурация, сървърът за символи трябва да съхранява всички PDB-та, а когато потребителят докладва грешка, дебъгерът автоматично може да намери съответния PDB файл в binay, а както Visual Studio, така и Windbg знаят как да достъпят сървъра за символи. Преди да съхранявате PDB и binay на сървъра за символи, трябва също да индексирате PDB run, което е да асоциирате PDB и източника.  

Следващата част предполага, че Symbol Server и Source Server Indexing вече са настроени. TFS2010 може да се направи толкова просто, колкото индексиране на source и копиране на символен сървър за нова конфигурация.

2. Съдържанието на PDB файла

Официално започвайки съдържанието на PDB, PDB не е публично достъпен файлов формат, но Microsoft предоставя API за получаване на данни от PDB.

Native C++ PDB съдържа следната информация:
* публични, частни и статични адреси на функциите;
* Името и адресът на глобалната променлива;
* Имена и отклонения на параметри и локални променливи в стека;
* типови дефиниции на клас, структура и данни;
* Данни за пропускане на Frame Pointer за преминаване през нативния стек на x86;
* Името и броят на редовете във файла с изходен код;

.NET PDB съдържа само 2 части информация:
* Име на файл с изходен код и брой редове;
* и името на локалната променлива;
* Всички останали данни вече са включени в . NET метаданни;  





Предишен:Visual Studio добавя мощните възможности за редактиране на Vim, което прави предотвратяването трудно!
Следващ:SQL Server изпраща поща чрез бази данни (sp_send_dbmail)
Публикувано в 16.01.2018 г. 15:44:18 ч. |
 Хазяин| Публикувано в 8.12.2022 г. 21:44:33 ч. |
VS 2022 настройва проекта да генерира .pdb файл
https://www.itsvse.com/thread-10397-1-1.html
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com