On 5/9/22 06:53, George Koehler wrote:
On Sat, 7 May 2022 19:23:18 +0200
Sven Wolf <[email protected]> wrote:

Reading symbols from php-fpm-8.0...(no debugging symbols found)...done.
[New process 413320]
Core was generated by `php-fpm-8.0'.
Program terminated with signal SIGBUS, Bus error.
#0  0x0510a0fc in ?? ()
(gdb) bt
#0  0x0510a0fc in ?? ()
#1  0x0510a0e4 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb)

This SIGBUS might be an alignment trap, if your armv7 needs strict
alignment.  Misaligned integers don't cause alignment traps on amd64,
i386, powerpc, nor powerpc64; so I probably can't reproduce this
SIGBUS on my computers.  Someone with aarch64, mips64, riscv64, or
sparc64 might or might not reproduce it.

Can you cause egdb to disassemble the trapped instruction, and print
its registers?  The command,
        (gdb) disas $pc,$pc+1
might show the instruction.  If a register like "r0" appears in the
instruction, then "print $r0" might print it.

For example, I made a core dump of a misaligned float on powerpc:

(gdb) disas $pc,$pc+1
Dump of assembler code from 0x1fde0a18 to 0x1fde0a19:
=> 0x1fde0a18 <main+92>:        lfs     f1,1(r3)
End of assembler dump.
(gdb) print $f1
$1 = 0
(gdb) print $r3
$2 = 3043988480

Here is the disassembled output:
egdb php-fpm-8.0 /var/crash/php-fpm-8.0/3047.core
...
Reading symbols from php-fpm-8.0...(no debugging symbols found)...done.
[New process 413320]
Core was generated by `php-fpm-8.0'.
Program terminated with signal SIGBUS, Bus error.
#0  0x0510a0fc in ?? ()
(gdb) bt
#0  0x0510a0fc in ?? ()
#1  0x0510a0e4 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) disas $pc,$pc+1
Dump of assembler code from 0x510a0fc to 0x510a0fd:
=> 0x0510a0fc:       vst1.64 {d16-d17}, [r1]
End of assembler dump.
(gdb) print $r1
$1 = 1849557212
(gdb)

In the next step I'll try to build the php port with debug symbols.

Sven

Reply via email to