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