Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 36247|Відповідь: 2

[Джерело] Проти того, що і чому генеруються .pdb-файли

[Копіювати посилання]
Опубліковано 16.01.2018 15:43:04 | | |
Для чого потрібен PDB-файл?

PDB-файли: Що повинен знати кожен розробник

Приклад сценарію PDB:

Виключення помилки log4net у .NET/C# не фіксує причину номера рядка
http://www.itsvse.com/thread-3928-1-1.html
(Джерело: Architect)


Що таке PDB-файл?

Більшість розробників повинні знати, що PDB-файли використовуються для допомоги у програмному налагодженні. Але як саме він працює, можливо, нам не знайомо. У цій статті описується зберігання та вміст файлів PDB. Він також описує, як відлагоджувач знаходить PDB-файл, що відповідає binay, і як він знаходить файл вихідного коду, що відповідає binay. Ця стаття для всіх нативних і керованих розробників.

Перш ніж почати, давайте визначимо два терміни: приватна збірка, яка використовується для позначення збірки, створеної на власній машині розробника; Публічна збірка, тобто збірка, згенерована на машині публічної збірки. приватне будівництво відносно просте, бо PDB і Binay знаходяться в одному місці, і зазвичай проблеми стосуються публічного будівництва.  

Найважливіше, що потрібно знати всім розробникам — це те, що «PDB-файли так само важливі, як і вихідний код», без яких ви навіть не можете налагодити. Для публічної збірки сервер символів має зберігати всі PDB, а коли користувач повідомляє про помилку, відлагоджувач автоматично може знайти відповідний PDB-файл у binay, і Visual Studio та Windbg знають, як отримати доступ до сервера символів. Перед тим, як зберігати PDB і binay на сервері символів, потрібно також індексувати PDB запуск, тобто асоціювати PDB і джерело.  

Наступна частина передбачає, що Symbol Server і Source Server Indexing вже налаштовані. TFS2010 можна зробити так само просто, як індексація вихідного коду та копіювання символічного сервера для нової збірки.

2. Зміст файлу PDB

Офіційно розпочинаючи контент PDB, PDB не є публічно доступним форматом файлу, але Microsoft надає API для отримання даних з PDB.

Рідний PDB C++ містить таку інформацію:
* публічні, приватні та статичні функціональні адреси;
* Назва та адреса глобальної змінної;
* Імена параметрів і локальних змінних і зсув на стеку;
* визначення типів класу, структури та даних;
* Дані про пропуск вказівника кадру для проходження нативного стеку на x86;
* Ім'я та кількість рядків у файлі вихідного коду;

PDB .NET містить лише 2 частини інформації:
* Ім'я файлу вихідного коду та кількість рядків;
* та назву локальної змінної;
* Всі інші дані вже включені у . Метадані NET;  





Попередній:Visual Studio додає потужні можливості редагування Vim, що ускладнює запобігання!
Наступний:SQL Server надсилає пошту за допомогою баз даних (sp_send_dbmail)
Опубліковано 16.01.2018 15:44:18 |
 Орендодавець| Опубліковано 08.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