Log the location field before any backtrace
authorPeter Eisentraut <peter@eisentraut.org>
Fri, 10 Jul 2020 06:27:00 +0000 (08:27 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Fri, 10 Jul 2020 06:32:06 +0000 (08:32 +0200)
This order makes more sense because the location is effectively at the
lowest level of the backtrace.

Discussion: https://www.postgresql.org/message-id/flat/90f5fa04-c410-a54e-9449-aa3749fb7972%402ndquadrant.com

src/backend/utils/error/elog.c

index e9762010309d76c48da875358cb1fece28578a1a..e4b717c79a9c199cebc1e8ead949d284d56b93fc 100644 (file)
@@ -2938,13 +2938,6 @@ send_message_to_server_log(ErrorData *edata)
                        append_with_tabs(&buf, edata->context);
                        appendStringInfoChar(&buf, '\n');
                }
-               if (edata->backtrace)
-               {
-                       log_line_prefix(&buf, edata);
-                       appendStringInfoString(&buf, _("BACKTRACE:  "));
-                       append_with_tabs(&buf, edata->backtrace);
-                       appendStringInfoChar(&buf, '\n');
-               }
                if (Log_error_verbosity >= PGERROR_VERBOSE)
                {
                        /* assume no newlines in funcname or filename... */
@@ -2962,6 +2955,13 @@ send_message_to_server_log(ErrorData *edata)
                                                                 edata->filename, edata->lineno);
                        }
                }
+               if (edata->backtrace)
+               {
+                       log_line_prefix(&buf, edata);
+                       appendStringInfoString(&buf, _("BACKTRACE:  "));
+                       append_with_tabs(&buf, edata->backtrace);
+                       appendStringInfoChar(&buf, '\n');
+               }
        }
 
        /*