Bug 24665

Summary: Отладка многопоточных приложений в perl
Product: Sisyphus Reporter: Владимир Диденко <vladimir.didenko>
Component: perl-develAssignee: at <at>
Status: CLOSED WONTFIX QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: at, crux, viy
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
Тестовое многопоточное приложение, на котором не работает отладчик perl. none

Description Владимир Диденко 2010-11-29 18:35:16 MSK
Created attachment 4684 [details]
Тестовое многопоточное приложение, на котором не работает отладчик perl.

1. В пакете perl-devel в зависимостях отсутствует пакет  perl-Term-ReadLine-Gnu.   
   Поэтому при попытке отладиться возникает ошибка:
   Can't locate Term/ReadLine.pm in @INC

2. При отладке многопоточных приложений в момент создания нового потока 
   возникает ошибка 

   Thread 1 terminated abnormally: Undefined subroutine &re::CLONE called at  ./test.pl line 10.

   Тестовую программу прилагаю к багу.
   Для воспроизведения достаточно запустить отладчик на тестовой программе и 
   набрать c(continue):
   perl -d test.pl
   DB<1> c
Comment 1 Vladimir Lettiev 2010-11-30 09:43:49 MSK
my $thread = threads->create( 'test_func' );
или
my $ref = \&test_func;
my $thread = threads->create( $ref );

отрабатывают в отладочном режиме как положено.
Проверил код в fedora14 - проблема воспроизводится. Надо будет повесить баг в апстрим.
Comment 2 Vladimir Lettiev 2010-11-30 10:28:20 MSK
http://rt.perl.org/rt3/Public/Bug/Display.html?id=79996
Comment 3 Vladimir Lettiev 2010-12-13 09:29:01 MSK
Проблема исправлена в bleadperl, но бэкпорт исправления в 5.12 затруднителен. Думаю, что придётся ждать выхода perl 5.14. Варианты обхода проблемы указаны в 1'ом комментарии.
Comment 4 Vladimir Lettiev 2011-01-15 10:23:25 MSK
Закрываю баг