Merge branch 'master' into blender2.8
[blender.git] / source / creator / creator_args.c
index 30513bd7986922b59342dd909223d970ccaec391..2840252acb9f4425f6aeb194966ffc88cd0dbeb3 100644 (file)
@@ -523,6 +523,7 @@ static int arg_handle_print_help(int UNUSED(argc), const char **UNUSED(argv), vo
        BLI_argsPrintArgDoc(ba, "--log");
        BLI_argsPrintArgDoc(ba, "--log-level");
        BLI_argsPrintArgDoc(ba, "--log-show-basename");
+       BLI_argsPrintArgDoc(ba, "--log-show-backtrace");
        BLI_argsPrintArgDoc(ba, "--log-file");
 
        printf("\n");
@@ -733,6 +734,17 @@ static int arg_handle_log_show_basename_set(int UNUSED(argc), const char **UNUSE
        return 0;
 }
 
+static const char arg_handle_log_show_backtrace_set_doc[] =
+"\n\tShow a back trace for each log message (debug builds only)."
+;
+static int arg_handle_log_show_backtrace_set(int UNUSED(argc), const char **UNUSED(argv), void *UNUSED(data))
+{
+       /* Ensure types don't become incompatible. */
+       void (*fn)(FILE *fp) = BLI_system_backtrace;
+       CLG_backtrace_fn_set((void (*)(void *))fn);
+       return 0;
+}
+
 static const char arg_handle_log_file_set_doc[] =
 "<filename>\n"
 "\n"
@@ -1820,6 +1832,7 @@ void main_args_setup(bContext *C, bArgs *ba)
        BLI_argsAdd(ba, 1, NULL, "--log", CB(arg_handle_log_set), ba);
        BLI_argsAdd(ba, 1, NULL, "--log-level", CB(arg_handle_log_level_set), ba);
        BLI_argsAdd(ba, 1, NULL, "--log-show-basename", CB(arg_handle_log_show_basename_set), ba);
+       BLI_argsAdd(ba, 1, NULL, "--log-show-backtrace", CB(arg_handle_log_show_backtrace_set), ba);
        BLI_argsAdd(ba, 1, NULL, "--log-file", CB(arg_handle_log_file_set), ba);
 
        BLI_argsAdd(ba, 1, "-d", "--debug", CB(arg_handle_debug_mode_set), ba);