jasonmolenda wrote:

Ah, so the problem is,
```
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_INSTRUCTION 
(code=1, subcode=0xdead)
  * frame #0: 0x0000000100003f2c b.out`signal_generating_add + 4 at 
signal-in-leaf-function-aarch64.c:5
    frame #1: 0x0000000100003f7c b.out`main + 44 at 
signal-in-leaf-function-aarch64.c:14
    frame #2: 0x0000000185c76244 dyld`start + 2792
```

The bad instruction in `signal_generating_add()`, is sent to the program master 
a EXC_BAD_INSTRUCTION mach exception, not a posix signal (or maybe it was 
received by lldb as a mach exception and if it had continued to the process it 
would be recieved as a signal).

When I've done these kinds of test cases in the past, I usually add a signal 
handler and then send the signal to the inferior, e.g. 
`lldb/test/API/functionalities/unwind/sigtramp/main.c` -- this test is marked 
`@skipUnlessDarwin` with a comment of 
```
    # On different platforms the "_sigtramp" and "__kill" frames are likely to 
be different.
    # This test could probably be adapted to run on linux/*bsd easily enough.
```
(the test explicitly checks the stack for the function names that should appear 
above the signal handler)

https://github.com/llvm/llvm-project/pull/91321
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to