|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/400 03 Oct 2004 03:15:42 To : Sergey A. Shkuratov Subject : Re: раскрутка стека -- хочется имена переменных и их значения -------------------------------------------------------------------------------- Sergey A. Shkuratov -> All @ Sat, 02 Oct 2004 22:28:26 +0400: SAS> Есть код раскрутки стека в обработчике фатальной ошибки: SAS> for (0..99) { # Does someone want to read more deep stack?! SAS> my @frame; SAS> { package DB; @frame = caller $_; } # Trick! Trick! SAS> @frame or next; SAS> local $Data::Dumper::Indent = 0; SAS> local $Data::Dumper::Terse = 1; SAS> $fatalmessage .= $indent . join(':', @frame[0..3]) . ' => ('; SAS> $fatalmessage =~ s/\smain:/$ENV{SCRIPT_NAME}:/; SAS> foreach my $arg (@DB::args) SAS> { SAS> my $val=(Dumper $arg); SAS> $fatalmessage .= $val . ",";} SAS> $fatalmessage .= ")\n"; SAS> $indent="$indent "; SAS> } SAS> Хочется на каждом уровне раскручиваемой цепочки вызовов печатать SAS> список переменных (определенных или видимых на этом уровне) с SAS> значениями для каждого уровня. Куда копать? Hасколько я понимаю, не бывает. Т.е., наверное, можно копать в потроха перла. Hо штатно можно получить только глобальные переменные (они видны отовсюду), и только с текущим (в смысле local) значением. А информация о лексических переменных - она наверняка по внутренним стекам распихана. -- Artem Chuprina <ran@ran.pp.ru> FIDO: 2:5020/122.256 --- ifmail v.2.15dev5.3 * Origin: Leninsky 45 home network (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/121926e5126bc.html, оценка из 5, голосов 10
|