У меня есть отладчик, который я переношу на * bsd из linux. В настоящее время я работаю над версией OpenBSD.Как получить информацию о сигналах в отладчике во время ptrace?
При определенных условиях я хотел бы узнать детали сигнала, который был доставлен. Например, предположим, что SIGSEGV был доставлен, я хотел бы знать, что такое ошибочный адрес, и, если возможно, если он был прочитан или написан.
Другой пример: если я получаю ловушку, было ли это одноэтапным событием? или, возможно, код операции INT3.
В Linux я получаю эту информацию по телефону:
ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo);
Это прекрасно работает, так как это позволяет мне иметь доступ к почти все, что я мог бы хотеть знать о сигнале. На OpenBSD не существует эквивалента. Я взглянул на kinfo_proc
и kinfo_proc2
, которые доступны с использованием API KVM, но на самом деле ничего не выпрыгивает на меня, поскольку он имеет тот же тип информации, что и siginfo_t. Каким будет правильный способ получить эту информацию?