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)
Dec 20 2023, 4:48 AM
Unknown Object (File)
Sep 5 2023, 3:26 AM
Unknown Object (File)
Aug 27 2023, 2:51 PM
Unknown Object (File)
Jul 28 2023, 7:47 PM
Unknown Object (File)
Jul 7 2023, 11:19 AM
Unknown Object (File)
Jun 30 2023, 7:04 PM
Unknown Object (File)
Jun 30 2023, 7:03 PM
Unknown Object (File)
Jun 30 2023, 7:03 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.