posix- все статьи тега ➜ страница 2


Как определить, выполняется ли текущий процесс GDB?

стандартный способ будет следующим: if (ptrace(PTRACE_TRACEME, 0, NULL, 0) == -1) printf("traced!n"); в этом случае ptrace возвращает ошибку, если текущий процесс отслеживается (т. е. выполняется с gdb или присоединяется к нему). но есть серьезная проблема с этим: если вызов возвращается успешно, gdb не может подключиться к нему позже. Что является проблемой, так как я не пытаюсь реализовать анти-отладочные вещи. Моя цель состоит в том, чтобы испустить "int 3", Когда выполняется contitio ...