Страницы

Поиск по вопросам

понедельник, 15 апреля 2019 г.

Как поставить програмную точку останова

Как поставить програмную точку останова в разных языках средах и IDE. Часто вижу вопросы не могу отладить программу потому что программа большая, обьёмы большие. Цикл на 10000000. Такие ситуации можно отловить, например, при возникновении ошибки у меня i=357489, а не понятно почему возникло исключение, тогда делаем, напимер так:
for (i=0;i<10000000;i++) { if (i==357489) DebugBreak(); // код }
Но DebugBreak - функция windows. Как можно поставить точки останова в других средах?


Ответ

В с с++ есть такие варианты поставить точку останова
DebugBreak(); - среда windows __builtin_trap() - среда linux raise(SIGTRAP) - работа с сигналами POSIX posix __EMIT__(0xCC) или __emit__(0xcc); - некоторые среды поддерживают вставку кода __asm { int 3;} или __asm { db 0xCC;} ассемблерная вставка
Для других сред
с# System.Diagnostics.Debugger.Break(); javascript debugger; java try {throw new TurnOnDebuggerException();}catch(TurnOnDebugger td) {/*Nothing*/ } pascal inline($CC); vbscript visual-basic stop

Комментариев нет:

Отправить комментарий