4174 / 1824 / 218
Регистрация: 06.10.2010
Сообщений: 4,111
|
|
1 | |
Странное поведение при отладке10.10.2017, 13:51. Показов 881. Ответов 3
Метки нет (Все метки)
Здравствуйте. Решил написать небольшую тулзу и столкнулся с проблемой: скомпилированный код прекрасно работает в отладчике, однако не работает без оного. Причём ошибки возникают в системных библиотеках.
Вот например при вызове CoCreateInstance Возможно приложение неправильно линкуется - часть кода написана на FASM`е и линкуется к основной программе на Delphi 7. Проблемы с obj возникли сразу - например если разместить переменные, которые содержат указатели на секцию кода (таблицы виртуальных методов) в секции данных, то Delphi выдаёт малопонятное "Internal error: LO1609". Я подозреваю, что Access Violation появляется при обращении к переменной в секции кода, но не на 100% уверен в этом, так как в отладчике адреса переменных другие (не $51F000) да и перед CoCreateInstance вызывается CLSIDFromString, в котором выполняется не только чтение, но и запись в переменные, расположенные в секции кода и оно не вызывает ошибок. Кто нибудь сталкивался с нормальной работой в отладчике и ошибками без него? Чем это может быть вызвано?
0
|
10.10.2017, 13:51 | |
Ответы с готовыми решениями:
3
Пример moufiltr - странное поведение Непонятное поведение при отладке Странное поведение при буте Странное поведение при делегировании |
4174 / 1824 / 218
Регистрация: 06.10.2010
Сообщений: 4,111
|
|
10.10.2017, 15:14 [ТС] | 2 |
Удалил все ненужные для компиляции файлы (*.dcu, *.cfg *.dof), перекомпилировал и о чудо - оно заработало. Но для меня остаётся загадкой, почему приложение может работать в отладчике и не работать без него. Я пробовал как встроенный в Delphi отладчик, так и Olly - результат одинаковый.
0
|
1624 / 806 / 146
Регистрация: 13.06.2015
Сообщений: 3,266
|
|
10.10.2017, 17:57 | 3 |
murderer, в делфи если вставляется что-то на ассемблере, то надо полностью отключать оптимизацию.
0
|
Asm/C++/Delphi/Py/PHP/VBA
|
|
12.10.2017, 10:20 | 4 |
Kukuxumushu, ну это ты уж загнул
Просто, видимо, этот FASM-код был заточен под определённые ключи компиляции (или, например, под Debug-профиль). Поэтому при других условиях вылезал такой косяк. В общем, проблема с FASM-кодом, судя по всему, криво написан.
0
|
12.10.2017, 10:20 | |
12.10.2017, 10:20 | |
Помогаю со студенческими работами здесь
4
Странное поведение ПК при старте Странное поведение при загрузке Странное поведение при работе с массивами Странное поведение при открытии файлов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |