ribash1816 Ответов: 1

Как справиться с нарушением доступа в strlen.asm во время удаленной отладки ?


Во-первых, я очень новичок в c++. Простите мою неосведомленность.

Это рабочий проект. Мы запускаем VS 2005 для разработки на одной машине и удаленный отладчик для отладки приложения(.exe) на другой машине (обе машины не имеют подключения к интернету). Приложение строится просто отлично, но при отладке оно выдает ошибку. Даже если я ставлю точку останова, отладчик не проходит мимо нее, независимо от того, сколько раз я нажимаю кнопку Продолжить. Теперь моя проблема заключается в том, что я не мог отследить ошибку в файле, написанном Microsoft. Или, может быть, ошибка не существует, и она исходит от другой функции, которая использует файл.

Вот вам пример изображение о проблеме.

Любое небольшое понимание этой проблемы помогло бы мне еще немного поработать над ней.

Спасибо.

Что я уже пробовал:

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

1 Ответов

Рейтинг:
2

Richard MacCutchan

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


ribash1816

отслеживая ошибку через точку останова, функция strlen вызывается в другом файле "atlsimpstr.h" :

статические инт как __cdecl StringLength(__в_з_опт константный тип char* ПСЗ) бросить()
{
if(psz == NULL){
возврат( 0 );
}
return (int(strlen(psz)));
}

Richard MacCutchan

Но это не имеет никакого отношения к вашему коду. Именно ваш код вызывает ошибку, поэтому вам нужно вернуться к фактическому месту, где он вызывает эти библиотечные функции.