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