Сроки, связанные с падением при выгрузке DLL? - PullRequest
0 голосов
/ 29 мая 2010

Я знаю, что здесь я берусь за соломинку, но это загадка ... любые указатели или помощь будут приветствоваться, поэтому я обращаюсь к тем, кто умнее меня:

У нас есть сбой, представленный только в наших выпусках. Сбой происходит, когда двоичный файл отключается и завершает работу подбиблиотек, от которых он зависит. Его способность к воспроизведению зависит от машины - некоторые на 100% надежны в воспроизведении аварии, некоторые вообще не обнаруживают проблему, а некоторые находятся между ними. Авария глубоко внутри одного из сублибра, и есть большая вероятность, что стек поврежден к тому времени, когда щебень может быть введен в отладчик (MSVC 2008 SP1) для проверки. Запуск бинарного файла под отладчиком предотвращает возникновение ошибки, как и удаленная отладка, как и (во всех отношениях) подключение к машине через VNC. Мы попытались установить Microsoft Driver Development Kit, и это также устраняет ошибку.

Что будет следующим лучшим местом для поиска? Какие инструменты были бы лучшими в этих обстоятельствах? Это похоже на состояние гонки или что-то еще?

Ответы [ 4 ]

1 голос
/ 31 мая 2010

Попробуйте AppVerifier и GFlags вместе, чтобы найти повреждение кучи страницы.

Скорее всего, для отладки вам понадобится WinDbg, а не Visual Studio.

Я также рекомендую эту книгу по расширенной отладке Windows для отслеживания сбоев, таких как тот, который вы запускаете.

1 голос
/ 01 июня 2010

Вы случайно используете пул потоков и не отменяете или ожидаете завершения незавершенных объектов задания?

1 голос
/ 29 мая 2010

Вы пробовали Rational Purify? Я использовал это (около 4-5 лет назад). Тогда это было полезно для отслеживания ошибок памяти, повреждения стека, неправильных дескрипторов и т. Д.

0 голосов
/ 02 июня 2010

Проблема заключалась в конфликте настроек вредоносного флага _SECURE_SCL в Visual Studio, что приводило к несовместимости ABI между DLL и одной из ее зависимостей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...