Revision d0693cf4
Von Moritz Bunkus vor fast 8 Jahren hinzugefügt
SL/LXDebug.pm | ||
---|---|---|
269 | 269 |
my @prefixes = ($prefix); |
270 | 270 |
|
271 | 271 |
if ($options{show_caller}) { |
272 |
my ($package, $filename, $line, $subroutine) = caller(1); |
|
273 |
push @prefixes, "${filename}:${line}"; |
|
272 |
my $level = 1; |
|
273 |
while (1) { |
|
274 |
my ($package, $filename, $line, $subroutine) = caller($level); |
|
275 |
|
|
276 |
if (($filename // '') =~ m{LXDebug\.pm$}) { |
|
277 |
$level++; |
|
278 |
next; |
|
279 |
} |
|
280 |
|
|
281 |
push @prefixes, "${filename}:${line}"; |
|
282 |
last; |
|
283 |
} |
|
274 | 284 |
} |
275 | 285 |
|
276 | 286 |
$prefix = join ' ', grep { $_ } @prefixes; |
Auch abrufbar als: Unified diff
LXDebug: bei SHOW_CALLER ersten Caller außerhalb von LXDebug.pm nehmen
Andernfalls wird beim Aufruf von z.B. »SL::Controller::CustomerVendor →
LXDebug::dump() → LXDebug::message()« fälschlicherweise
»LXDebug::dump()« als Caller ausgegeben. Das interessiert die Nutzer*in
aber im Zweifelsfall nicht, sondern »SL::Controller::CustomerVendor«.