MCPcopy Create free account
hub / github.com/OGSR/OGSR-Engine / gather_info

Function gather_info

ogsr_engine/xrCore/xrDebugNew.cpp:124–175  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

122}
123
124void gather_info(const char* expression, const char* description, const char* argument0, const char* argument1, const char* file, int line, const char* function,
125 char* assertion_info)
126{
127 auto buffer = assertion_info;
128 auto endline = "\n";
129 auto prefix = "[error]";
130 bool extended_description = (description && !argument0 && strchr(description, '\n'));
131 for (int i = 0; i < 2; ++i)
132 {
133 if (!i)
134 buffer += sprintf(buffer, "%sFATAL ERROR%s%s", endline, endline, endline);
135 buffer += sprintf(buffer, "%sExpression : %s%s", prefix, expression, endline);
136 buffer += sprintf(buffer, "%sFunction : %s%s", prefix, function, endline);
137 buffer += sprintf(buffer, "%sFile : %s%s", prefix, file, endline);
138 buffer += sprintf(buffer, "%sLine : %d%s", prefix, line, endline);
139
140 if (extended_description)
141 {
142 buffer += sprintf(buffer, "%s%s%s", endline, description, endline);
143 }
144 else
145 {
146 buffer += sprintf(buffer, "%sDescription : %s%s", prefix, description, endline);
147 if (argument0)
148 {
149 if (argument1)
150 {
151 buffer += sprintf(buffer, "%sArgument 0 : %s%s", prefix, argument0, endline);
152 buffer += sprintf(buffer, "%sArgument 1 : %s%s", prefix, argument1, endline);
153 }
154 else
155 buffer += sprintf(buffer, "%sArguments : %s%s", prefix, argument0, endline);
156 }
157 }
158
159 buffer += sprintf(buffer, "%s", endline);
160 if (!i)
161 {
162 Log(assertion_info);
163 buffer = assertion_info;
164 endline = "\r\n";
165 prefix = "";
166 }
167 }
168
169#ifdef USE_OWN_MINI_DUMP
170 buffer += sprintf(buffer, "See log file and minidump for detailed information\r\n");
171#else
172 buffer += sprintf(buffer, "See log file for detailed information\r\n");
173#endif
174 LogStackTrace("!!stack trace:\n");
175}
176
177void xrDebug::do_exit(const std::string& message)
178{

Callers 1

backendMethod · 0.85

Calls 2

LogFunction · 0.85
LogStackTraceFunction · 0.85

Tested by

no test coverage detected