2009-01-27 07:37:43     SIGILL illegal instruction

Document created by Aaronwu Employee on Aug 9, 2013
Version 1Show Document
  • View in full screen mode

2009-01-27 07:37:43     SIGILL illegal instruction

D V (ITALY)

Message: 68390   

 

Hello i m trying to debug an audio driver using KGDBOE on the last  kernel ( svn trunk 7036 ) but i get often SIGILL errors. The assembly seems ok and running without debug the same function works well.

 

In this way is impossible to complete a debug session.

 

Can anyone help me to fix this problem?

 

 

 

thanks

 

emag

QuoteReplyEditDelete

 

 

2009-01-27 07:47:26     Re: SIGILL illegal instruction

Robin Getz (UNITED STATES)

Message: 68395   

 

DV

 

A reproducable test case is the only way to solve a problem.

 

We use kgdb all the time and don't see the same issues.

 

-Robin

QuoteReplyEditDelete

 

 

2009-01-28 07:44:21     Re: SIGILL illegal instruction

D V (ITALY)

Message: 68472   

 

I don't know how to make reproducable it. This happens and i remarked that when i do a Step trace into a function a pointer passed as function parameter is modified. I m trying to recompile the kernel with -O0 but i get errors. How to compile with -O0 only my driver i added in the Makefile in the blackfin/sound dir?

 

 

 

thanks a lot

 

 

 

bye

 

emag

QuoteReplyEditDelete

 

 

2009-01-28 08:09:24     Re: SIGILL illegal instruction

Robin Getz (UNITED STATES)

Message: 68475   

 

DV:

 

The kernel (by design) is not able to be compiled with -O0.

 

-Robin

QuoteReplyEditDelete

 

 

2009-01-28 08:17:55     Re: SIGILL illegal instruction

D V (ITALY)

Message: 68476   

 

It recompiles with -O1 but there is always the same problem: when i step into a function the first parameter passed result changed. Any idea about ?

 

 

 

bye

 

emag

QuoteReplyEditDelete

 

 

2009-01-28 08:34:12     Re: SIGILL illegal instruction

D V (ITALY)

Message: 68478   

 

i found that when i set the breakpoint using insight+gdb   the instruction associated to the breakpoint is not executed and i need to set the PC back of  an instruction line.

 

 

 

for example:  i set the breakpoint  here:  R0 = [P4 + 0x4]  but it's ignored.

 

 

 

bye

 

emag

QuoteReplyEditDelete

 

 

2009-01-30 03:07:38     Re: SIGILL illegal instruction

D V (ITALY)

Message: 68555   

 

I setup a breakpoint at 0x00162fb0 and KGBD stopped

 

8   breakpoint     keep y   0x00162fb0 in bf53x_sport_tx_start at sound/blackfin/bf54x_sport.c:381

 

 

But the next step is in the middle of the instruction where stopped

(gdb) where

#0  0x00162fb2 in bf53x_sport_tx_start (sport=0x339fcbc) at sound/blackfin/bf54x_sport.c:381

 

 

 

This is the code

 

    0x162fac    <bf53x_sport_tx_start+4>:        LINK 0xc;        /* (12) */

    379        unsigned flags;

    380  

    381        if (sport->tx_run)

    0x162fb0    <bf53x_sport_tx_start+8>:        R0 = B[P4 + 0x38] (X);

    0x162fb4    <bf53x_sport_tx_start+12>:       CC = !BITTST (R0, 0x1);        /* bit  1 */

 

The PC is

 

(gdb) print $pc

$1 = (void (*)()) 0x162fb2 <bf53x_sport_tx_start+10>

 

0x162fb2 and not 0x162fb4 or 0x162fb0

 

 

 

HELP

 

thanks

Attachments

    Outcomes