Пример #1
0
    void Debugger::traceMethod(MethodInfo* fnc, bool ignoreArgs)
    {
        if (in_trace) return;
        in_trace = true;

        // callback trace
        if (trace_callback && fnc && astrace_callback > TRACE_OFF)
            traceCallback(0);

        if (astrace_console > TRACE_OFF)
        {
            if (fnc)
            {
                // WARNING: don't change the format of output since outside utils depend on it
                uint64_t delta = VMPI_getTime() - astraceStartTime;
                core->console << (uint32)(delta) << " AVMINF: MTHD ";
                Stringp fname = fnc->getMethodName();
                if (fname && (fname->length() > 0) )
                    core->console << fname;
                else
                    core->console << "<unknown>";

                core->console << " (";

                if (!ignoreArgs && core->callStack && (astrace_console == TRACE_METHODS_WITH_ARGS || astrace_console == TRACE_METHODS_AND_LINES_WITH_ARGS))
                    core->console << traceArgumentsString();

                core->console << ")\n";
            }
        }
        in_trace = false;
    }
Пример #2
0
    void Debugger::traceLine(int line)
    {
        if (in_trace) return;
        in_trace = true;

        // callback trace
        AvmAssert(line != 0);
        if (trace_callback && astrace_callback >= TRACE_METHODS_AND_LINES)
            traceCallback(line);

        // console level trace
        if (astrace_console >= TRACE_METHODS_AND_LINES)
        {
            Stringp file = core->callStack->filename();

            // WARNING: don't change the format of output since outside utils depend on it
            uint64_t delta = VMPI_getTime() - astraceStartTime;
            core->console << (uint32)(delta) << " AVMINF: LINE ";
            if (file)
                core->console << "   " << line << "\t\t " << file << "\n";
            else
                core->console << "   " << line << "\t\t ??? \n";
        }
        in_trace = false;
    }
Пример #3
0
void SkinnedDialog::trace(TCHAR *msg, ...)
{
	if (traceCallback == NULL)
		return;

	TCHAR buff[1024];
	memset(buff, 0, sizeof(buff));

	va_list args;
	va_start(args, msg);

	_vsntprintf(buff, MAX_REGS(buff) - 1, msg, args);
	buff[MAX_REGS(buff) - 1] = 0;

	va_end(args);

	traceCallback(traceCallbackParam, buff);
}