Page MenuHomeFreeBSD

trap_cfi(9): introduce arm implementation
Needs ReviewPublic

Authored by mchoo on Sun, Sep 13, 6:19 PM.
Tags
None
Referenced Files
F173065286: D59650.id186803.diff
Wed, Sep 23, 7:43 AM
F172962785: D59650.diff
Tue, Sep 22, 11:07 AM
Unknown Object (File)
Tue, Sep 22, 1:38 AM
Unknown Object (File)
Tue, Sep 22, 12:37 AM
Unknown Object (File)
Mon, Sep 21, 9:16 PM
Unknown Object (File)
Mon, Sep 21, 5:06 PM
Unknown Object (File)
Mon, Sep 21, 4:55 PM
Unknown Object (File)
Sun, Sep 20, 8:43 PM
Subscribers

Details

Reviewers
jhb
andrew
Group Reviewers
ARM
Summary

MFC after: 2 weeks
MFC to: stable/14, stable/15
Sponsored by: FreeBSD Foundation

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
No Test Coverage
Build Status
Buildable 76941
Build 73824: arc lint + arc unit

Event Timeline

mchoo requested review of this revision.Sun, Sep 13, 6:19 PM

I wanted to test this through QEMU, but it seems like armv7 minidump is broken (it cannot locate allproc, stoppcbs, etc)

mchoo retitled this revision from trap_cfi(9): add assembly interface for arm to trap_cfi(9): introduce arm implementation.

I wanted to test this through QEMU, but it seems like armv7 minidump is broken (it cannot locate allproc, stoppcbs, etc)

D59716 allowed me extract kernel dump from QEMU, and the frame unwinding works as expected. Ready for review.

Of course, I don't know anything about annotating the trap frame.
However, adding instructions to the absolutely hot path(s) in the system to fix the debugger doesn't seem like a good idea to me.

Why can't stop lying about the annotation of the stored registers and properly annotate the entire trapframe (including the SPSR), allowing the debugger to do its job?

sys/arm/arm/exception.S
349–350

Why has this change been made? It doesn't make sense to me.

I forgot about it yesterday. At worst, you can use .cfi_escape + DW_CFA_val_expression to select proper LR and SP directly in debugger.