diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2002-12-03 00:47:10 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2002-12-03 00:47:10 +0000 |
commit | e819fefcd279c78d61e4410caa815aa2fe19ae5c (patch) | |
tree | 279d2189eef9f2a06c4907153bf0ef93045c95d1 /c | |
parent | 2002-12-02 Joel Sherrill <joel@OARcorp.com> (diff) | |
download | rtems-e819fefcd279c78d61e4410caa815aa2fe19ae5c.tar.bz2 |
2002-12-02 Joel Sherrill <joel@OARcorp.com>
* stackchk/check.c: Better handling of task name.
Diffstat (limited to '')
-rw-r--r-- | c/src/libmisc/ChangeLog | 4 | ||||
-rw-r--r-- | c/src/libmisc/stackchk/check.c | 34 | ||||
-rw-r--r-- | cpukit/libmisc/ChangeLog | 4 | ||||
-rw-r--r-- | cpukit/libmisc/stackchk/check.c | 34 |
4 files changed, 54 insertions, 22 deletions
diff --git a/c/src/libmisc/ChangeLog b/c/src/libmisc/ChangeLog index 8060de0b29..ce3f1e1c8c 100644 --- a/c/src/libmisc/ChangeLog +++ b/c/src/libmisc/ChangeLog @@ -1,3 +1,7 @@ +2002-12-02 Joel Sherrill <joel@OARcorp.com> + + * stackchk/check.c: Better handling of task name. + 2002-11-15 Ralf Corsepius <corsepiu@faw.uni-ulm.de> * monitor/mon-commands.c: Removed warnings for RTEMS_UNIX. 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, diff --git a/cpukit/libmisc/ChangeLog b/cpukit/libmisc/ChangeLog index 8060de0b29..ce3f1e1c8c 100644 --- a/cpukit/libmisc/ChangeLog +++ b/cpukit/libmisc/ChangeLog @@ -1,3 +1,7 @@ +2002-12-02 Joel Sherrill <joel@OARcorp.com> + + * stackchk/check.c: Better handling of task name. + 2002-11-15 Ralf Corsepius <corsepiu@faw.uni-ulm.de> * monitor/mon-commands.c: Removed warnings for RTEMS_UNIX. diff --git a/cpukit/libmisc/stackchk/check.c b/cpukit/libmisc/stackchk/check.c index 6a2e60c854..c0f1cca992 100644 --- a/cpukit/libmisc/stackchk/check.c +++ b/cpukit/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, |