}
+extern int DebugEventLoopBacktrace;
void EV_backtrace(AsyncIO *IO)
{
#ifdef HAVE_BACKTRACE
size_t size, i;
char **strings;
- if (IO == NULL)
+ if ((IO == NULL) || (DebugEventLoopBacktrace == 0))
return;
size = backtrace(stack_frames, sizeof(stack_frames) / sizeof(void*));
strings = backtrace_symbols(stack_frames, size);
ev_loop *event_base;
int DebugEventLoop = 0;
+int DebugEventLoopBacktrace = 0;
int DebugCurl = 0;
long EvIDSource = 1;
{
DebugEventLoop = 1;
}
+void DebugEventloopBacktraceEnable(void)
+{
+ DebugEventLoopBacktrace = 1;
+}
void DebugCurlEnable(void)
{
if (!threading)
{
CtdlRegisterDebugFlagHook(HKEY("eventloop"), DebugEventloopEnable);
+ CtdlRegisterDebugFlagHook(HKEY("eventloopbacktrace"), DebugEventloopBacktraceEnable);
CtdlRegisterDebugFlagHook(HKEY("curl"), DebugCurlEnable);
InitEventQueue();
DBInitEventQueue();