[ECOS] Thread debugging sans stubs
Grant Edwards
grante@visi.com
Tue Oct 2 16:05:00 GMT 2001
I've got a thread that stops running occasionally, and I'm
trying to figure out why. Since I'm using a JTAG interface, I
don't have the thread support provided by GDB stubs. I can
print out the thread object, but don't know how to interpret
it. Is there any documentation that explains how to figure out
things like the thread's current IP, and if/why the thread is
blocked?
For example, my dead thread is shown below. I've verified
things like the stack, entry point, name, and so on...
(gdb) print 'rpshsi.c'::TcpRxThread
$2 = {
hwthread = {
stack_base = 606612,
stack_size = 4096,
stack_limit = 606612,
stack_ptr = 610428,
entry_point = 34124,
entry_data = 0,
saved_context = 0x0
},
schedthread = {
next = 0x910e8,
prev = 0x910e8,
priority = 8,
queue = 0x27bcf8,
mutex_count = 2,
original_priority = 8,
priority_inherited = 0
},
state = 1,
suspend_count = 0,
wakeup_count = 0,
wait_info = 610276,
unique_id = 7,
timer = {
alarm = {
next = 0x26731c,
counter = 0x132040,
alarm = 0x2207c <Cyg_ThreadTimer::alarm(Cyg_Alarm *, unsigned int)>,
data = 594228,
trigger = 1073,
interval = 0,
enabled = 0
},
thread = 0x910e8
},
sleep_reason = 1,
wake_reason = 0,
thread_data = {0, 0, 0, 0, 0, 0},
name = 0x71a90 "TcpRx",
list_next = 0x90fb0
}
--
Grant Edwards
grante@visi.com
More information about the Ecos-discuss
mailing list