I'm having issues with getting a stack trace for a real time thread. I keep getting the following:
so i went inside my factory where i initialize my RT Threads, and added the following:
I still wasnt able to get a stack trace. So then i thought, maybe i had to make that same call in each thread. So inside one of my classes that runs on a RT Thread, i added the above logic. Still nothing..
can anyone tell me how to enable?
Thanks so much
So my process is multithreaded and only some of the threads are realtime threads. From within a realtime thread i can execute a full thread dump no problem. However, if i were to attempt to execute a thread dump on a realtime thread (within a different thread) i get that log statement stating i need to enable stack tracing.
There is no stack trace. At least that's what im getting from the output. My guess is RTSJ sees pausing the thread to get a full stack trace causes jitter and makes the system just that much more undeterministic. Therefore by default they disable stack tracing for realtime threads (when called from a different thread). Here is the entire output:
INFO [ProcessMonitor InputQ-1 Cell] stax.StackTraceAspect: (21/Dec/2010 17:47:22.177) 21/Dec/2010 17:47:22.177
Missed Heartbeat Trace for CELL [ShapeCell]
Strack Trace Dump
"ShapeCell InputQ-1 Cell" id  priority  state [WAITING] alive [true] daemon [false] native [false] suspended [false]
queue: depth  max size 
The "ProcessMonitor InputQ-1" is a non-realtime thread attempting to get a stack trace of "ShapeCell InputQ-1" thread (which is a realtime thread)
I believe the developers of RTSJ are probably going to have to answer this question. I have a followup meeting with them in the near future and will post their response.