J'ai un débogueur que je transfère vers * bsd à partir de Linux. Actuellement, je travaille sur la version OpenBSD.Comment obtenir les détails du signal dans le débogueur pendant que ptrace?
Dans certaines conditions, je voudrais connaître les détails du signal qui a été délivré. Par exemple, supposons qu'un SIGSEGV ait été livré, j'aimerais savoir quelle était l'adresse défaillante, et si possible si c'était une lecture ou une écriture.
Un autre exemple est si je reçois un piège, était-ce un événement en une seule étape? ou peut-être un opcode INT3.
Sur linux je reçois obtenir cette information en appelant:
ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo);
Cela fonctionne très bien, car il me laisse avoir accès à peu près tout ce que je pourrais peut-être vouloir savoir sur le signal. Il ne semble pas y avoir d'équivalent sur OpenBSD. J'ai jeté un oeil à kinfo_proc
et kinfo_proc2
qui sont accessibles en utilisant l'API KVM, mais rien ne m'apparaît vraiment comme ayant le même type d'information qu'un siginfo_t. Quelle serait la bonne façon d'obtenir cette information?