From e819fefcd279c78d61e4410caa815aa2fe19ae5c Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 3 Dec 2002 00:47:10 +0000 Subject: 2002-12-02 Joel Sherrill * stackchk/check.c: Better handling of task name. --- c/src/libmisc/stackchk/check.c | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) (limited to 'c/src/libmisc/stackchk/check.c') diff --git a/c/src/libmisc/stackchk/check.c b/c/src/libmisc/stackchk/check.c index 6a2e60c854..c0f1cca992 100644 --- a/c/src/libmisc/stackchk/check.c +++ b/c/src/libmisc/stackchk/check.c @@ -420,8 +420,9 @@ void Stack_check_Dump_threads_usage( void *high_water_mark; Stack_Control *stack; unsigned32 u32_name; - char name[5]; - + char name_str[5]; + char *name; + Objects_Information *info; if ( !the_thread ) return; @@ -453,16 +454,27 @@ void Stack_check_Dump_threads_usage( else used = 0; - if ( the_thread ) - u32_name = *(unsigned32 *)the_thread->Object.name; - else + info = _Objects_Get_information(the_thread->Object.id); + name = name_str; + if ( the_thread ) { + if ( info->is_string ) { + name = (char *) the_thread->Object.name; + } else { + u32_name = (unsigned32 *)the_thread->Object.name; + name[ 0 ] = (u32_name >> 24) & 0xff; + name[ 1 ] = (u32_name >> 16) & 0xff; + name[ 2 ] = (u32_name >> 8) & 0xff; + name[ 3 ] = (u32_name >> 0) & 0xff; + name[ 4 ] = '\0'; + } + } else { u32_name = rtems_build_name('I', 'N', 'T', 'R'); - - name[ 0 ] = (u32_name >> 24) & 0xff; - name[ 1 ] = (u32_name >> 16) & 0xff; - name[ 2 ] = (u32_name >> 8) & 0xff; - name[ 3 ] = (u32_name >> 0) & 0xff; - name[ 4 ] = '\0'; + name[ 0 ] = (u32_name >> 24) & 0xff; + name[ 1 ] = (u32_name >> 16) & 0xff; + name[ 2 ] = (u32_name >> 8) & 0xff; + name[ 3 ] = (u32_name >> 0) & 0xff; + name[ 4 ] = '\0'; + } printf( "0x%08x %4s 0x%08x 0x%08x %8d %8d\n", the_thread ? the_thread->Object.id : ~0, -- cgit v1.2.3