MCPcopy Create free account
hub / github.com/apitrace/apitrace / traceProgram

Function traceProgram

cli/cli_trace.cpp:95–325  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

93
94
95static int
96traceProgram(trace::API api,
97 char * const *argv,
98 const char *output,
99 int verbose,
100 bool debug,
101 bool mhook,
102 bool timestamp)
103{
104 const char *wrapperFilename;
105 std::vector<const char *> args;
106 int status = 1;
107
108 /*
109 * TODO: simplify code
110 */
111
112 bool useInject = false;
113 switch (api) {
114 case trace::API_GL:
115 wrapperFilename = GL_TRACE_WRAPPER;
116 break;
117#ifdef EGL_TRACE_WRAPPER
118 case trace::API_EGL:
119 wrapperFilename = EGL_TRACE_WRAPPER;
120 break;
121#endif
122#ifdef _WIN32
123 case trace::API_D3D7:
124 wrapperFilename = "ddraw.dll";
125 break;
126 case trace::API_D3D8:
127 wrapperFilename = "d3d8.dll";
128 break;
129 case trace::API_D3D9:
130 wrapperFilename = "d3d9.dll";
131 break;
132 case trace::API_DXGI:
133 wrapperFilename = "dxgitrace.dll";
134 useInject = true;
135 break;
136 case trace::API_D2D1:
137 wrapperFilename = "d2d1trace.dll";
138 useInject = true;
139 break;
140#endif
141 default:
142 std::cerr << "error: unsupported API\n";
143 return 1;
144 }
145
146 os::String wrapperPath = findWrapper(wrapperFilename, verbose);
147 if (!wrapperPath.length()) {
148 std::cerr << "error: failed to find " << wrapperFilename << " wrapper (rerun with -v option for more details)\n";
149 goto exit;
150 }
151
152#if defined(_WIN32)

Callers 1

commandFunction · 0.85

Calls 7

findWrapperFunction · 0.85
copyWrapperFunction · 0.85
unsetEnvironmentFunction · 0.85
setEnvironmentFunction · 0.85
removeFileFunction · 0.85
strMethod · 0.80
executeFunction · 0.50

Tested by

no test coverage detected