Один из моих коллег отправил клиенту оперативную сборку исправлений, а затем удалил файл pdb.Рассматриваемая сборка падает (периодически), и у нас есть несколько аварийных дампов.У нас есть весь исходный код в управлении версиями, и мы можем скомпилировать его в эквивалентный .exe и получить символы для него.Тем не менее, эти символы точно не соответствуют аварийному дампу.Кажется, что некоторые функции отключены из-за некоторого постоянного смещения, но мы рассмотрели лишь несколько из них.
Я бы хотел сделать следующее (я могу подделать некоторые части этого вручную,но это огромный объем работы): получить трассировку стека для каждого потока в дампе и указатели приведения в дамп к соответствующему типу и отобразить их в отладчике Visual Studio.Я использую 2005, если это имеет значение.
Есть ли инструмент, позволяющий нам воссоздать pdb с учетом исходного кода, всех файлов .obj и исходного .exe?Или когда мы компилируем / ссылаемся, есть настройка, которая говорит: «сделайте это точно так же, как этот другой исполняемый файл, который вы только что сделали» или что-то в этом роде?
Быстрое обновление, основанное на полученных до сих пор ответах: у меня есть файл exe, которыймы отправили клиенту, но не тот PDB, который ему соответствует, если это поможет.Я просто не стал бы посылать им новую сборку (если это возможно), потому что на получение аварийных дампов уходит около недели, а заказчик уже спрашивает: «Почему это не исправлено?»этап.(Если мы отправим еще одну сборку, я бы предпочел, чтобы это была та, которая либо решает проблему, либо имеет дополнительную отладку в интересующей области, а не просто тот же код.) Я знаю, что это можно сделать вручную с помощьюмного догадок;это то, что мы сейчас делаем.Но это боль, так что я надеюсь, что есть способ автоматизировать это.