vppinfra: Make program counter printing more portable
Finding the program counter in the ucontext struct is platform and architecture specific, place the Linux checks inside an #ifdef and add a look up for the FreeBSD amd64 specific naming. Type: improvement Change-Id: I42fcef5f20227c23d84acee336e37c4870146bb4 Signed-off-by: Tom Jones <thj@freebsd.org>
This commit is contained in:
@ -432,6 +432,7 @@ u8 * format_ucontext_pc (u8 * s, va_list * args)
|
|||||||
|
|
||||||
uc = va_arg (*args, ucontext_t *);
|
uc = va_arg (*args, ucontext_t *);
|
||||||
|
|
||||||
|
#ifdef __linux__
|
||||||
#if defined (powerpc)
|
#if defined (powerpc)
|
||||||
regs = &uc->uc_mcontext.uc_regs->gregs[0];
|
regs = &uc->uc_mcontext.uc_regs->gregs[0];
|
||||||
#elif defined (powerpc64)
|
#elif defined (powerpc64)
|
||||||
@ -454,6 +455,13 @@ u8 * format_ucontext_pc (u8 * s, va_list * args)
|
|||||||
reg_no = 0;
|
reg_no = 0;
|
||||||
regs = 0;
|
regs = 0;
|
||||||
#endif
|
#endif
|
||||||
|
#elif __FreeBSD__
|
||||||
|
#if defined(__amd64__)
|
||||||
|
reg_no = 0;
|
||||||
|
regs = (void *) &uc->uc_mcontext.mc_rip;
|
||||||
|
#else
|
||||||
|
#endif /* __amd64__ */
|
||||||
|
#endif /* __linux__ */
|
||||||
|
|
||||||
if (! regs)
|
if (! regs)
|
||||||
return format (s, "unsupported");
|
return format (s, "unsupported");
|
||||||
|
Reference in New Issue
Block a user