Enable tracer support. Resolves #97

extensions
Volodymyr Shymanskyy 4 years ago
parent 5870a05660
commit 9443eedd19

@ -86,7 +86,7 @@ if(EMSCRIPTEN)
elseif(WASIENV)
if(BUILD_WASI_SUPPORT)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Dd_m3HasMetaWASI")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Dd_m3HasMetaWASI -Dd_m3HasTracer")
endif()
set(CMAKE_C_FLAGS_RELEASE "-O3 -Wfatal-errors -fomit-frame-pointer -fno-stack-check -fno-stack-protector")
@ -127,7 +127,7 @@ elseif(WIN32)
else()
if(BUILD_WASI_SUPPORT)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Dd_m3HasWASI") #-Dd_m3FixedHeap=1048576
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Dd_m3HasWASI -Dd_m3HasTracer") #-Dd_m3FixedHeap=1048576
endif()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wparentheses -Wundef -Wpointer-arith -Wstrict-aliasing=2")

@ -13,6 +13,7 @@
#include "wasm3.h"
#include "m3_api_wasi.h"
#include "m3_api_libc.h"
#include "m3_api_tracer.h"
#include "m3_env.h"
#define FATAL(msg, ...) { printf("Error: [Fatal] " msg "\n", ##__VA_ARGS__); goto _onfatal; }
@ -265,6 +266,11 @@ int main (int i_argc, const char* i_argv[])
if (result) FATAL("m3_LinkWASI: %s", result);
#endif
#if defined(d_m3HasTracer)
result = m3_LinkTracer (runtime->modules);
if (result) FATAL("m3_LinkTracer: %s", result);
#endif
result = m3_LinkLibC (runtime->modules);
if (result) FATAL("m3_LinkLibC: %s", result);

@ -14,7 +14,7 @@
#if defined(d_m3HasTracer)
static FILE* trace;
static FILE* trace = NULL;
m3ApiRawFunction(m3_env_log_execution)
{
@ -114,10 +114,15 @@ d_m3TraceLocal(set_f64, "set f64", double, "%lf")
static
M3Result SuppressLookupFailure(M3Result i_result)
{
if (i_result == m3Err_functionLookupFailed)
return m3Err_none;
else
return i_result;
if (i_result == m3Err_none) {
// If any trace function is found in the module, open the trace file
if (!trace) {
trace = fopen ("wasm3_trace.csv","w");
}
} else if (i_result == m3Err_functionLookupFailed) {
i_result = m3Err_none;
}
return i_result;
}
@ -127,8 +132,6 @@ M3Result m3_LinkTracer (IM3Module module)
const char* env = "env";
trace = fopen ("wasm3_trace.csv","w");
_ (SuppressLookupFailure (m3_LinkRawFunction (module, env, "log_execution", "v(i)", &m3_env_log_execution)));
_ (SuppressLookupFailure (m3_LinkRawFunction (module, env, "log_exec_enter", "v(ii)", &m3_env_log_exec_enter)));

Loading…
Cancel
Save