This is "Hang detection" page in EurekaLog project's options.
Hang detection options
This page allows you to configure hang and deadlock detection feature in EurekaLog.
1. "Activate UI hang detection with timeout" option enables EurekaLog to monitor running application for hangs. A timeout (in seconds) indicate how long UI must be unresponsive to be detected as "hang".
High values will result in longer hang detection. Low values will result in false-positive triggering.
Recommended value is 4 seconds.
Notes:
2. "Disable under debugger" (.FreezeDisableUnderDebugger) option will disable hang detection feature if you run your application under debugger. The hang detection will be enabled when application run outside of IDE/debugger.
Note: this option has no effect if "Activate UI hang detection with timeout" option is not checked.
Important note: it is recommended to enable this option when debugging your application. Time spend in the debugger will be accounted for non-responding time of your application. Thus, a hang report may be triggered while you are debugging your application. Use this option to avoid such false-positive reports.
3. "Include stacks of RTL threads" (.csoShowRTLThreads) option includes call stacks of all RTL threads in application. By default only hanged thread and EurekaLog-enabled threads are captured.
"RTL threads" means thread started with TThread or BeginThread.
It is recommended to keep this option off and use TThreadEx and BeginThreadEx or SetEurekaLogStateInThread. Turn this option on to capture call stack of external RTL threads (that is threads started by 3rd party code without your control).
Note: capturing call stack of an external thread requires thread's suspending. In rare case this can cause deadlock issues (for example: thread may be suspended when it is running memory allocation function; thus, any further memory alloc/release operation will block application forever). Do not enable this option until really needed. See Using EurekaLog in multi-threaded applications for more details.
Taking call stack of additional threads will require more time during exception processing.
4. "Include stacks of Windows threads" (.csoShowWindowsThreads) option includes call stacks of all non-RTL threads in application. By default only hanged thread and EurekaLog-enabled threads are captured.
"Windows threads" means thread started with CreateThread.
It is recommended to keep this option off and use TThreadEx and BeginThreadEx or SetEurekaLogStateInThread. Alternatively, you may use "Include stacks of RTL threads" instead. Turn this option on to capture call stack of external Windows threads (that is threads started by 3rd party code without your control).
Note: capturing call stack of an external thread requires thread's suspending. In rare case this can cause deadlock issues (for example: thread may be suspended when it is running memory allocation function; thus, any further memory alloc/release operation will block application forever). Do not enable this option until really needed. See Using EurekaLog in multi-threaded applications for more details.
Taking call stack of additional threads will require more time during exception processing.
See also:
|