LinkBuffer::CodeRef LinkBuffer::finalizeCodeWithDisassembly(const char* format, ...) { CodeRef result = finalizeCodeWithoutDisassembly(); if (m_alreadyDisassembled) return result; StringPrintStream out; out.printf("Generated JIT code for "); va_list argList; va_start(argList, format); out.vprintf(format, argList); va_end(argList); out.printf(":\n"); out.printf(" Code at [%p, %p):\n", result.code().executableAddress(), static_cast<char*>(result.code().executableAddress()) + result.size()); CString header = out.toCString(); if (Options::asyncDisassembly()) { disassembleAsynchronously(header, result, m_size, " "); return result; } dataLog(header); disassemble(result.code(), m_size, " ", WTF::dataFile()); return result; }