ソースを参照

Merge branch 'master' of github.com:taylor001/crown

Daniele Bartolini 10 年 前
コミット
65d5cb99aa

+ 9 - 8
genie/crown.lua

@@ -10,8 +10,11 @@ function crown_project(_name, _kind, _defines)
 
 		includedirs {
 			CROWN_DIR .. "src",
+			CROWN_DIR .. "src/audio",
+			CROWN_DIR .. "src/compilers",
 			CROWN_DIR .. "src/core",
 			CROWN_DIR .. "src/core/containers",
+			CROWN_DIR .. "src/core/error",
 			CROWN_DIR .. "src/core/filesystem",
 			CROWN_DIR .. "src/core/json",
 			CROWN_DIR .. "src/core/math",
@@ -20,21 +23,19 @@ function crown_project(_name, _kind, _defines)
 			CROWN_DIR .. "src/core/settings",
 			CROWN_DIR .. "src/core/strings",
 			CROWN_DIR .. "src/core/thread",
-			CROWN_DIR .. "src/main",
 			CROWN_DIR .. "src/input",
-			CROWN_DIR .. "src/renderers",
-			CROWN_DIR .. "src/resource",
 			CROWN_DIR .. "src/lua",
-			CROWN_DIR .. "src/audio",
-			CROWN_DIR .. "src/compilers",
+			CROWN_DIR .. "src/main",
 			CROWN_DIR .. "src/physics",
+			CROWN_DIR .. "src/renderers",
+			CROWN_DIR .. "src/resource",
 			CROWN_DIR .. "src/world",
+			CROWN_DIR .. "third/bgfx/include",
+			CROWN_DIR .. "third/bgfx/src",
+			CROWN_DIR .. "third/bx/include",
 			CROWN_DIR .. "third/freetype",
 			CROWN_DIR .. "third/stb_image",
 			CROWN_DIR .. "third/stb_vorbis",
-			CROWN_DIR .. "third/bgfx/src",
-			CROWN_DIR .. "third/bgfx/include",
-			CROWN_DIR .. "third/bx/include",
 		}
 
 		defines {

+ 1 - 1
src/core/error.cpp → src/core/error/error.cpp

@@ -21,7 +21,7 @@ namespace error
 		va_end(ap);
 		printf("\tIn: %s:%d\n", file, line);
 		printf("Stacktrace:\n");
-		stacktrace();
+		print_callstack();
 		exit(EXIT_FAILURE);
 	}
 } // namespace error

+ 0 - 0
src/core/error.h → src/core/error/error.h


+ 2 - 1
src/core/stacktrace.h → src/core/error/stacktrace.h

@@ -8,6 +8,7 @@
 namespace crown
 {
 
-void stacktrace();
+/// Prints the current call stack.
+void print_callstack();
 
 } // namespace crown

+ 1 - 1
src/core/stacktrace_android.cpp → src/core/error/stacktrace_android.cpp

@@ -10,7 +10,7 @@
 namespace crown
 {
 
-void stacktrace()
+void print_callstack()
 {
 }
 

+ 1 - 1
src/core/stacktrace_linux.cpp → src/core/error/stacktrace_linux.cpp

@@ -15,7 +15,7 @@
 namespace crown
 {
 
-void stacktrace()
+void print_callstack()
 {
 	void* array[50];
 	int size = backtrace(array, 50);

+ 16 - 13
src/core/stacktrace_windows.cpp → src/core/error/stacktrace_windows.cpp

@@ -14,7 +14,7 @@
 namespace crown
 {
 
-void stacktrace()
+void print_callstack()
 {
 	SymInitialize(GetCurrentProcess(), NULL, TRUE);
 	SymSetOptions(SYMOPT_LOAD_LINES | SYMOPT_UNDNAME);
@@ -55,23 +55,26 @@ void stacktrace()
 	sym->MaxNameLen = MAX_SYM_NAME;
 
 	UINT num = 0;
-	while (StackWalk64(mtype,
-			GetCurrentProcess(),
-			GetCurrentThread(),
-			&stack,
-			&ctx,
-			NULL,
-			SymFunctionTableAccess64,
-			SymGetModuleBase64,
-			NULL))
+	while (StackWalk64(mtype
+			, GetCurrentProcess()
+			, GetCurrentThread()
+			, &stack
+			, &ctx
+			, NULL
+			, SymFunctionTableAccess64
+			, SymGetModuleBase64
+			, NULL))
 	{
-
 		if (stack.AddrPC.Offset == 0)
 			break;
 
 		++num;
-		BOOL res = SymGetLineFromAddr64(GetCurrentProcess(), stack.AddrPC.Offset, &ldsp, &line) &&
-			SymFromAddr(GetCurrentProcess(), stack.AddrPC.Offset, 0, sym);
+
+		BOOL res = SymGetLineFromAddr64(GetCurrentProcess()
+					, stack.AddrPC.Offset
+					, &ldsp
+					, &line);
+		res = res && SymFromAddr(GetCurrentProcess(), stack.AddrPC.Offset, 0, sym);
 
 		if (res == TRUE)
 			printf("\t[%i] %s (%s:%d)\n", num, sym->Name, line.FileName, line.LineNumber);