Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/400     22 Jul 2002  20:57:21
 To : Andrey Sapozhnikov
 Subject : Re: stack trace
 -------------------------------------------------------------------------------- 
 
 Здравствуй, Andrey Sapozhnikov.
 
 AS> > Вот есть штатный способ вывести stack trace в stderr или получить в строке
 AS> > исключения (Carp::cluck, Carp::confess). Hо хочется выбросить объект.
 AS> > Прицепить к нему цепочку caller - дурацкое дело нехитрое. А вот столь же
 AS> > просто получить ее вместе с аргументами? Как сложно - несложно подсмотреть
 AS> > в самом Carp от 5.005 (в 5.6.1 он уже отчетливо заныкан унутрь).
 
 AS> Я не совсем понял чего собственно хочется из этого письма. Hаписано, что
 AS> хочется выбросить выбросить объект, но что за объект и куда его выбросить?
 AS> Если ключевой была фраза о получении аргументов функций из текущего стека
 AS> вызовов,
 
 Я на редкость невнятен сегодня... Да, именно это.
 
 AS> то вот примерчик, вполне в соответствии с perldoc -f caller.
 AS> #!/usr/bin/perl -w
 AS> use strict;
 AS> use Data::Dumper;
 
 AS> sub one {
 AS>      for (0..99) { # Does someone want to read more deep stack?!
 AS>          my @frame;
 AS>          { package DB; @frame = caller $_; } # Trick! Trick!
 AS>          @frame or next;
 AS>          local $Data::Dumper::Indent = 0;
 AS>          local $Data::Dumper::Terse = 1;
 AS>          print join(':', @frame[1..3]), ' => ', Dumper(\@DB::args), "\n";
 AS>      }
 AS> }
 
 AS> sub two { one(1, 2, 3); }
 AS> sub three { two('one', 2, 3); }
 AS> three('one','two','three');
 
 Спасибо, дальше понятно. Единственно, в Carp в 5.005 делают не for (0..99), а
 while (do { {package DB; @frame = caller($i++); } } )
 
 Или там таки возможны пустые фреймы? Hа практике не попадалось.
 
 -- 
 Artem Chuprina
 Communiware.net
 RFC2822: <ran@ran.pp.ru>, FIDO: 2:5020/358.49, ICQ: 13038757
 --- ifmail v.2.15dev5
  * Origin: Leninsky 45 home network (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 stack trace   Artem Chuprina   22 Jul 2002 18:35:22 
 Re: stack trace   Andrey Sapozhnikov   22 Jul 2002 19:33:18 
 Re: stack trace   Victor Wagner   22 Jul 2002 20:34:09 
 Re: stack trace   Andrey Sapozhnikov   22 Jul 2002 21:27:14 
 Re: stack trace   Artem Chuprina   23 Jul 2002 13:31:15 
 Re: stack trace   Maxim Goncharov   23 Jul 2002 22:34:41 
 Re: stack trace   Artem Chuprina   24 Jul 2002 22:10:53 
 Re: stack trace   Maxim Goncharov   25 Jul 2002 01:55:26 
 Re: stack trace   Artem Chuprina   25 Jul 2002 10:43:46 
 Re: stack trace   Maxim Goncharov   25 Jul 2002 16:53:12 
 Re: stack trace   Artem Chuprina   25 Jul 2002 20:00:25 
 Re: stack trace   Konstantin Stupnik   24 Jul 2002 13:23:31 
 Re: stack trace   Artem Chuprina   24 Jul 2002 22:13:00 
 Re: stack trace   Konstantin Stupnik   25 Jul 2002 07:51:06 
 Re: stack trace   Artem Chuprina   25 Jul 2002 10:43:47 
 Re: stack trace   Konstantin Stupnik   25 Jul 2002 16:43:03 
 Re: stack trace   Konstantin Tokar   25 Jul 2002 17:42:28 
 stack trace   Sergey Tkachuk   26 Jul 2002 01:16:02 
 Re: stack trace   Artem Chuprina   22 Jul 2002 20:57:21 
 Re: stack trace   Andrey Sapozhnikov   22 Jul 2002 21:31:35 
Архивное /ru.perl/14454569b85c6.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional