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