| @@ -486,10 +486,12 @@ static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) · 485 unmodified lines |
| 486 | 486 | if (level == 0) { |
| 487 | 487 | #if defined(__APPLE__) |
| 488 | 488 | *paddr = uc->uc_mcontext->__ss.__eip; |
| 489 | | −#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) |
| 489 | +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) |
| 490 | 490 | *paddr = uc->uc_mcontext.mc_eip; |
| 491 | 491 | #elif defined(__dietlibc__) |
| 492 | 492 | *paddr = uc->uc_mcontext.eip; |
| 493 | +#elif defined(__NetBSD__) |
| 494 | + *paddr = uc->uc_mcontext.__gregs[_REG_EIP]; |
| 493 | 495 | #else |
| 494 | 496 | *paddr = uc->uc_mcontext.gregs[REG_EIP]; |
| 495 | 497 | #endif |
| @@ -497,10 +499,12 @@ static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) · 1 unmodified line |
| 497 | 499 | } else { |
| 498 | 500 | #if defined(__APPLE__) |
| 499 | 501 | fp = uc->uc_mcontext->__ss.__ebp; |
| 500 | | −#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) |
| 502 | +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) |
| 501 | 503 | fp = uc->uc_mcontext.mc_ebp; |
| 502 | 504 | #elif defined(__dietlibc__) |
| 503 | 505 | fp = uc->uc_mcontext.ebp; |
| 506 | +#elif defined(__NetBSD__) |
| 507 | + fp = uc->uc_mcontext.__gregs[_REG_EBP]; |
| 504 | 508 | #else |
| 505 | 509 | fp = uc->uc_mcontext.gregs[REG_EBP]; |
| 506 | 510 | #endif |
| @@ -530,6 +534,8 @@ static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) · 23 unmodified lines |
| 530 | 534 | *paddr = uc->uc_mcontext->__ss.__rip; |
| 531 | 535 | #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) |
| 532 | 536 | *paddr = uc->uc_mcontext.mc_rip; |
| 537 | +#elif defined(__NetBSD__) |
| 538 | + *paddr = uc->uc_mcontext.__gregs[_REG_RIP]; |
| 533 | 539 | #else |
| 534 | 540 | *paddr = uc->uc_mcontext.gregs[REG_RIP]; |
| 535 | 541 | #endif |
| @@ -539,6 +545,8 @@ static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) · 3 unmodified lines |
| 539 | 545 | fp = uc->uc_mcontext->__ss.__rbp; |
| 540 | 546 | #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) |
| 541 | 547 | fp = uc->uc_mcontext.mc_rbp; |
| 548 | +#elif defined(__NetBSD__) |
| 549 | + fp = uc->uc_mcontext.__gregs[_REG_RBP]; |
| 542 | 550 | #else |
| 543 | 551 | fp = uc->uc_mcontext.gregs[REG_RBP]; |
| 544 | 552 | #endif |