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)
Sun, Feb 2, 10:00 PM
Unknown Object (File)
Jan 18 2025, 5:28 AM
Unknown Object (File)
Dec 9 2024, 5:30 AM
Unknown Object (File)
Nov 13 2024, 4:23 PM
Unknown Object (File)
Oct 4 2024, 7:39 PM
Unknown Object (File)
Sep 18 2024, 7:51 PM
Unknown Object (File)
Sep 8 2024, 5:53 PM
Unknown Object (File)
Sep 8 2024, 8:22 AM
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.