Как поставить програмную точку останова в разных языках средах и 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
Комментариев нет:
Отправить комментарий