Hallo, mau tanya nih,
Apakah di Linux kita bisa meng-ekstrak informasi
pada address mana terjadi segmentation fault, dari
dalam signal handler yang kita bikin sendiri ?

Di Solaris, hal ini bisa di implementasikan sbb:

  /* Set SIGSEGV disposition to segv_handler() */
  struct sigaction *act = 
      (struct sigaction *)malloc(sizeof(struct sigaction));
  struct sigaction *oldact = 
      (struct sigaction *)malloc(sizeof(struct sigaction));
  act->sa_sigaction = (void *)segv_handler;
  act->sa_flags = SA_RESTART | SA_SIGINFO;
  sigaction(SIGSEGV,act,oldact);

dan dari dalam segv_handler() kita bisa ekstrak pada address mana
terjadi Segmentation fault, sbb:

void segv_handler(int signum, siginfo_t *sip, ucontext_t *uap){
  ...
  char *vadr = (char *)sip->_data._fault._addr;
  /* now vadr points the faulting address */
  ...
}

TIA,

-- 
Niko D. Barli
[EMAIL PROTECTED]
([EMAIL PROTECTED])
http://www.mtl.t.u-tokyo.ac.jp/~niko

The README says, "Needs Windows 95, NT 4.0 or better".
So I installed it on Linux.

----------------------------------------------------------------------
Unsubscribe: [EMAIL PROTECTED] 
Archive: http://www.vlsm.org/linux-archive
Linux CD: [EMAIL PROTECTED]

Kirim email ke