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