microblaze: Add stack unwinder
commitce3266c047389443d5f433d605c769e878cbe46e
authorSteven J. Magnani <steve@digidescorp.com>
Tue, 27 Apr 2010 17:37:54 +0000 (27 12:37 -0500)
committerMichal Simek <monstr@monstr.eu>
Wed, 4 Aug 2010 08:22:35 +0000 (4 10:22 +0200)
treee638a255d5d0f1b000a81b512dc605b92d0b8701
parentba9c4f88d747836bf35c3eee36aa18d2e164f493
microblaze: Add stack unwinder

Implement intelligent backtracing by searching for stack frame creation,
and emitting only return addresses. Use print_hex_dump() to display the
entire binary kernel stack.

Limitation: MMU kernels are not currently able to trace beyond a system trap
(interrupt, syscall, etc.). It is the intent of this patch to provide
infrastructure that can be extended to add this capability later.

Changes from V1:
* Removed checks in find_frame_creation() that prevented location of the frame
  creation instruction in heavily optimized code
* Various formatting/commenting/file location tweaks per review comments
* Dropped Kconfig option to enable STACKTRACE as something logically separate

Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
arch/microblaze/include/asm/exceptions.h
arch/microblaze/include/asm/system.h
arch/microblaze/include/asm/unwind.h [new file with mode: 0644]
arch/microblaze/kernel/Makefile
arch/microblaze/kernel/entry-nommu.S
arch/microblaze/kernel/entry.S
arch/microblaze/kernel/hw_exception_handler.S
arch/microblaze/kernel/stacktrace.c
arch/microblaze/kernel/traps.c
arch/microblaze/kernel/unwind.c [new file with mode: 0644]