| Summary: | Отладка многопоточных приложений в perl | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Sisyphus | Reporter: | Владимир Диденко <vladimir.didenko> | ||||
| Component: | perl-devel | Assignee: | viy <viy> | ||||
| 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