Пользовательская Точка останова из ниоткуда

UPDATE IP_ADMISSION_REQUEST ip1
SET IP1.WRIST_BAND_PRINT_STATUS=0
WHERE IP1.IP_ADM_REQ_ID        =
  (SELECT IP.IP_ADM_REQ_ID
  FROM IP_ADMISSION_REQUEST ip
  INNER JOIN VISIT v
  ON ip.ip_visit_id=v.visit_id
  AND v.pat_id     =3702
  ); `enter code here`
7
задан EvilTeach 9 January 2009 в 09:15
поделиться

2 ответа

Вы, вероятно, поражаете код в стандартных программах "кучи" отладки, которые нашли повреждение "кучи".

, На что стек вызовов похож при ударе Интервала 3?

Редактирование: На основе отслеживания стека в Ваших комментариях стандартная программа _CrtIsValidHeapPointer() говорит, что освобождаемый указатель неверен. Вот отрывок кода из источника MSVC DBGHEAP.C:

    /*
     * If this ASSERT fails, a bad pointer has been passed in. It may be
     * totally bogus, or it may have been allocated from another heap.
     * The pointer MUST come from the 'local' heap.
     */
    _ASSERTE(_CrtIsValidHeapPointer(pUserData));

pUserData было бы значение указателя, Вы - deleteing.

8
ответ дан 6 December 2019 в 23:14
поделиться

(я думаю, asm интервал 3 является аппаратной командой прерывания работы для x86?

Это. Это звонило "аппаратная точка останова" . При использовании отладчика VS с исходным кодом проекта это точно так же, как точка останова (но в коде). С тех пор vs2005, если Ваше приложение запущено без какого-либо отладчика, приложение просто откажет, как то, если это запустило неуправляемое исключение.

В партии компании, существует простой макрос, используемый, чтобы добавить что точка останова в коде. Это может заменить, утверждает и исключения в некоторых (твердый и редкий) случаи:

#define BREAKPOINT __asm { int 3; }

BREAKPOINT;

См.:

, Таким образом, я предлагаю искать некоторый Макрос или объект, делающий это или возможно это appen в модуле (dll/lib), что у Вас нет кода?

3
ответ дан 6 December 2019 в 23:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: