svn commit: r236308 - head/sys/arm/arm
Grzegorz Bernacki
gber at FreeBSD.org
Wed May 30 13:33:27 UTC 2012
Author: gber
Date: Wed May 30 13:33:27 2012
New Revision: 236308
URL: http://svn.freebsd.org/changeset/base/236308
Log:
Print userspace backtrace for current thread.
Reviewed by: imp
Obtained from: Semihalf
Modified:
head/sys/arm/arm/db_trace.c
Modified: head/sys/arm/arm/db_trace.c
==============================================================================
--- head/sys/arm/arm/db_trace.c Wed May 30 13:31:08 2012 (r236307)
+++ head/sys/arm/arm/db_trace.c Wed May 30 13:33:27 2012 (r236308)
@@ -79,14 +79,13 @@ __FBSDID("$FreeBSD$");
*/
static void
-db_stack_trace_cmd(db_expr_t addr, db_expr_t count)
+db_stack_trace_cmd(db_expr_t addr, db_expr_t count, boolean_t kernel_only)
{
u_int32_t *frame, *lastframe;
c_db_sym_t sym;
const char *name;
db_expr_t value;
db_expr_t offset;
- boolean_t kernel_only = TRUE;
int scp_offset;
frame = (u_int32_t *)addr;
@@ -196,8 +195,11 @@ db_trace_thread(struct thread *thr, int
{
struct pcb *ctx;
- ctx = kdb_thr_ctx(thr);
- db_stack_trace_cmd(ctx->un_32.pcb32_r11, -1);
+ if (thr != curthread) {
+ ctx = kdb_thr_ctx(thr);
+ db_stack_trace_cmd(ctx->un_32.pcb32_r11, -1, TRUE);
+ } else
+ db_trace_self();
return (0);
}
@@ -207,5 +209,5 @@ db_trace_self(void)
db_addr_t addr;
addr = (db_addr_t)__builtin_frame_address(0);
- db_stack_trace_cmd(addr, -1);
+ db_stack_trace_cmd(addr, -1, FALSE);
}
More information about the svn-src-head
mailing list