Можно ли регенерировать символы для exe?

Один из моих сотрудников отправил заказчику сборку с оперативным исправлением и впоследствии удалил файл pdb. Рассматриваемая сборка вылетает (периодически), и у нас есть несколько аварийных дампов. У нас есть весь исходный код в системе контроля версий, и мы можем скомпилировать его в эквивалентный .exe и получить символы для этого. Однако эти символы не совсем соответствуют аварийному дампу. Кажется, что некоторые функции отключены каким-то постоянным смещением, но мы рассмотрели только некоторые.

I ' Мне нравится иметь возможность делать следующее (я могу частично подделать это вручную, но это огромный объем работы): получить трассировку стека для каждого потока в дампе и привести указатели в дампе к соответствующему типу и получить их появляются в отладчике Visual Studio. Я использую 2005 год, если это имеет значение.

Есть ли инструмент, позволяющий воссоздать PDB с учетом исходного кода, всех файлов .obj и исходного .exe? Или есть настройка, когда мы компилируем / связываем, чтобы сказать: «Сделайте это точно так же, как этот другой exe, который вы только что сделали» или что-то в этом роде?

Быстрое обновление, основанное на ответах на данный момент: У меня есть файл exe, который мы отправили клиент, а не соответствующий ему PDB, если это помогает. Я бы сразу же не отправил им новую сборку (если возможно), потому что для получения аварийных дампов требуется около недели работы, и клиент уже задается вопросом «Почему это еще не исправлено?» сцена. (Если мы все же отправим еще одну сборку, я бы предпочел, чтобы она либо устраняла проблему, либо имела дополнительную отладку в интересующей области, а не только тот же код.) Я знаю, что некоторые из них можно сделать вручную с помощью много догадок; это то, что мы сейчас делаем. Но это неприятно, поэтому я надеюсь, что есть способ автоматизировать это.

7
задан Michael 17 December 2010 в 16:01
поделиться