[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [microblaze-uclinux] Trace/BPT trap message



Hi Leonid,

Leonid wrote:
What does this message mean? I started to see it with no particular
reason - I just run process, sending packet via UDS socket to another
process, waiting for response, printing message's content and leaving:

This message is generated by the shell (probably busybox's msh in this case?), when the shell is doing a wait_for_child() operation. It prints out the name of the signal that caused the death of the child process.

In this case, it's signal 5 - SIGTRAP.

SIGTRAP is generated by the kernel if a process executes a breakpoint trap - in MicroBlaze this is "brki r14, 0x60". This shouldn't happen unless you are using gdbserver to debug it, or doing something tricky with the ptrace() system call.

It's possible your app has gone diving off to random memory, ended up executing the 0x60 breakpoint trap. No handler was installed, so it died and the shell reported that fact.

You might try using XMD to set a hardware breakpoint at 0x60, boot the kernel and run your app. When (if?) the HW stops at 0x60, look at the registers and try to see how it got there. r15 is the link register, that should tell you the address of the last branch instruction (function call) taken. If you're really lucky, r14 will contain the address of a "brki r14, 0x60" debug trap instruction that is causing the trap.

Cross reference these addresses back into a kernel object dump

$ microblaze-uclinux-objdump -S linux-2.4.x/linux > linux.dump

I think you'll need to get a bit forensic on this one.

Regards,

John








# /home/httpd/cgi-bin/cgi_server
 # Test Script Name Steps Curr Prcnt ENBL RUN Loops Usage Cntr
--------------------------------------------------------------
 1 LEDs_Walk           12   12   100 +    -       1          1
 1 Module_ID            6    6   100 +    -       1          1
 2 FPGA_SDRAM           5    5   100 +    -       1          1
 3 NOR_FLASH            5    5   100 +    -       1          1
 4 GPIO_SAMPLE          4    4   100 +    -       1          1
 5 GPIO_WALK_0         32   32   100 +    -       1          1
 6 GPIO_WALK_1         32   32   100 +    -       1          1
 7 ETH_PING             1    1   100 +    -       1          1
 8 CAN_GPIO             2    2   100 +    -       1          1
 9 MIL_1553_SAMPLE      4    4   100 +    -       1          1
Trace/BPT trap

Could be some memory violation?

Thanks,

Leonid.

___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/



___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/