This is the mail archive of the gdb-prs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug gdb/20835] New: gdbserver terminated with signal SIGILL, Illegal instruction.


https://sourceware.org/bugzilla/show_bug.cgi?id=20835

            Bug ID: 20835
           Summary: gdbserver terminated with signal SIGILL, Illegal
                    instruction.
           Product: gdb
           Version: 7.11.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: gdb
          Assignee: unassigned at sourceware dot org
          Reporter: cedric.schmeits at boschrexroth dot nl
  Target Milestone: ---

When using gdbserver on the node for remote debugging of embedded application
the server crashed with a illigal instuction. 


Program terminated with signal SIGILL, Illegal instruction.
#0  0x0002c462 in sigchld_handler (signo=17) at linux-low.c:6032
6027       so we notice when children change state; as the handler for the
6028       sigsuspend in my_waitpid.  */
6029    
6030    static void
6031    sigchld_handler (int signo)
=> 6032 {
6033      int old_errno = errno;
6034    
6035      if (debug_threads)
6036        {

The illigal instruction is at position: 0x0002c462
When looking at the disassembled code we see the following:

Dump of assembler code for function sigchld_handler:
   0x0002c460 <+0>:     push    {r3, r4, r5, lr}
   0x0002c464 <+4>:     bl      0x11db0 <__errno_location@plt>
   0x0002c468 <+8>:     mov     r4, r0
   0x0002c46c <+12>:    ldr     r3, [pc, #56]   ; 0x2c4ac <sigchld_handler+76>
   0x0002c470 <+16>:    ldr     r5, [r0]
   0x0002c474 <+20>:    ldr     r3, [r3]
   0x0002c478 <+24>:    cmp     r3, #0
   0x0002c47c <+28>:    beq     0x2c490 <sigchld_handler+48>
   0x0002c480 <+32>:    mov     r0, #2
   0x0002c484 <+36>:    ldr     r1, [pc, #36]   ; 0x2c4b0 <sigchld_handler+80>
   0x0002c488 <+40>:    mov     r2, #16
   0x0002c48c <+44>:    bl      0x11e1c <write@plt>
   0x0002c490 <+48>:    ldr     r3, [pc, #28]   ; 0x2c4b4 <sigchld_handler+84>
   0x0002c494 <+52>:    ldr     r3, [r3]
   0x0002c498 <+56>:    cmn     r3, #1
   0x0002c49c <+60>:    beq     0x2c4a4 <sigchld_handler+68>
   0x0002c4a0 <+64>:    bl      0x2c418 <async_file_mark>
   0x0002c4a4 <+68>:    str     r5, [r4]
   0x0002c4a8 <+72>:    pop     {r3, r4, r5, pc}
   0x0002c4ac <+76>:    andeq   r2, r6, r12, asr #7
   0x0002c4b0 <+80>:    andeq   r7, r4, r0, ror #9
   0x0002c4b4 <+84>:    andeq   r12, r5, r0, asr #29
End of assembler dump.


The sigchld_hander function is at position 0x0002c460 this is a difference of 2
bytes. This function has already been called several times working correctly so
the registration of the function is done correctly. So something else is
failing

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]