Summary: | Отладка многопоточных приложений в perl | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Владимир Диденко <vladimir.didenko> | ||||
Component: | perl-devel | Assignee: | at <at> | ||||
Status: | CLOSED WONTFIX | QA Contact: | qa-sisyphus | ||||
Severity: | normal | ||||||
Priority: | P3 | CC: | at, crux, viy | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
my $thread = threads->create( 'test_func' ); или my $ref = \&test_func; my $thread = threads->create( $ref ); отрабатывают в отладочном режиме как положено. Проверил код в fedora14 - проблема воспроизводится. Надо будет повесить баг в апстрим. Проблема исправлена в bleadperl, но бэкпорт исправления в 5.12 затруднителен. Думаю, что придётся ждать выхода perl 5.14. Варианты обхода проблемы указаны в 1'ом комментарии. Закрываю баг |
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