Page MenuHomeFreeBSD

Avoid wrong sigtramp detection on ppc64
ClosedPublic

Authored by luporl on Oct 30 2019, 8:58 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Jan 9, 9:30 PM
Unknown Object (File)
Sun, Jan 4, 2:37 PM
Unknown Object (File)
Sat, Jan 3, 6:48 PM
Unknown Object (File)
Sun, Dec 28, 8:15 AM
Unknown Object (File)
Sat, Dec 27, 2:57 AM
Unknown Object (File)
Nov 23 2025, 12:12 AM
Unknown Object (File)
Nov 20 2025, 7:31 PM
Unknown Object (File)
Nov 20 2025, 7:18 PM
Subscribers

Details

Summary

Current implementation of ppcfbsd_pc_in_sigtramp() seems to take only 32-bit PowerPC in account, as on 64-bit PowerPC most kernel instruction addresses will be wrongly reported as in sigtramp.

For now, always return 0, as this makes most use cases work properly.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

luporl added inline comments.
contrib/gdb/gdb/ppcfbsd-tdep.c
525 ↗(On Diff #63812)

On a second thought, it seems the correct thing to do is to move this line inside the if (tdep->wordsize == 8) block.

The trampoline for ppc64 is at 0x3ffffffffffe000 + offset, in the shared page.

  • Merge branch 'master' into luporl-fix-gdb-sigtramp
  • Add proper sigtramp detection for ppc64

The trampoline for ppc64 is at 0x3ffffffffffe000 + offset, in the shared page.

Ok, thanks for the info, I've added a ppc64 specific function to check for the trampoline range.

This revision is now accepted and ready to land.Oct 31 2019, 7:05 PM
This revision was automatically updated to reflect the committed changes.