Fix first line of backtrace missing in query error display

This commit is contained in:
Kijin Sung 2025-07-22 21:54:22 +09:00
parent d544365399
commit 393c847cee
3 changed files with 3 additions and 3 deletions

View file

@ -1269,7 +1269,7 @@ class DB
if (isset($backtrace[$no])) if (isset($backtrace[$no]))
{ {
$result['called_method'] = ($backtrace[$no]['class'] ?? '') . ($backtrace[$no]['type'] ?? '') . ($backtrace[$no]['function'] ?? ''); $result['called_method'] = ($backtrace[$no]['class'] ?? '') . ($backtrace[$no]['type'] ?? '') . ($backtrace[$no]['function'] ?? '');
$result['backtrace'] = $this->_debug_full_stack ? array_slice($backtrace, $no) : []; $result['backtrace'] = $this->_debug_full_stack ? array_slice($backtrace, $no - 1) : [];
} }
else else
{ {

View file

@ -148,7 +148,7 @@ $(function() {
if (data.queries[i].backtrace && data.queries[i].backtrace.length) { if (data.queries[i].backtrace && data.queries[i].backtrace.length) {
backtrace = $('<ul></ul>').appendTo(description.find('li:first-child')); backtrace = $('<ul></ul>').appendTo(description.find('li:first-child'));
for (j in data.queries[i].backtrace) { for (j in data.queries[i].backtrace) {
if (data.queries[i].backtrace[j].file) { if (j > 0 && data.queries[i].backtrace[j].file) {
backtrace.append($('<li></li>').text(data.queries[i].backtrace[j].file + ":" + data.queries[i].backtrace[j].line)); backtrace.append($('<li></li>').text(data.queries[i].backtrace[j].file + ":" + data.queries[i].backtrace[j].line));
} }
} }

View file

@ -126,7 +126,7 @@ Database Queries
echo sprintf(' - Call Stack: %s', $query_caller) . ($query->count > 1 ? (' (×' . $query->count . ')') : '') . "\n"; echo sprintf(' - Call Stack: %s', $query_caller) . ($query->count > 1 ? (' (×' . $query->count . ')') : '') . "\n";
foreach ($query->backtrace ?? [] as $key => $backtrace) foreach ($query->backtrace ?? [] as $key => $backtrace)
{ {
if (isset($backtrace['file']) && isset($backtrace['line'])) if ($key > 0 && isset($backtrace['file']) && isset($backtrace['line']))
{ {
echo sprintf(' %s line %d', $backtrace['file'], $backtrace['line']) . "\n"; echo sprintf(' %s line %d', $backtrace['file'], $backtrace['line']) . "\n";
} }