Я использую Eclipse GALILEO, работающий на Linux Ubuntu с плагином EPIC для запуска/отладки кода Perl, и у меня возникают некоторые проблемы при отладке. Обычно, когда я выполняю пошаговую отладку и встречаю строку, где используется некий Perl-модуль, я нажимаю «Перейти к», после чего просматривается файл модуля, и стрелка отладки также перемещается туда. Теперь кажется, что есть определенные модули, которые не следуют этому сценарию. Вместо этого, когда я нажимаю «Шаг внутрь», запущенный процесс происходит где-то в фоновом режиме. Я имею в виду, что я могу нажать «Шаг через», и я увижу результаты кода, который выполняется, но я не вижу ни сам файл, ни стрелку.
Чтобы сделать это немного яснее, обратитесь к следующему фрагменту кода:
.
.
if (defined($sysname) && $sysname)
{
$sys_manager->setup_from_name($sysname);
$pf_manager->setup_from_name($sysname);
} else {
die "You must give either a --system parameter or an alias name.";
}
}
.
.
Код от начала до части, показанной выше, можно найти здесь
Я выполняю пошаговую отладку, пока не дойду до строки $sys_manager->setup_from_name($sysname);
. Когда я дохожу до него, я нажимаю кнопку «Шаг внутрь» (а не «Шаг вперед»). Затем я ожидаю, что в eclipse откроется еще одно окно, которое переключит представление на модуль, где существует этот метод setup_from_name
. Однако, как я упоминал ранее, «стрелка отладки» исчезает. На этом этапе, если я нажму кнопку «Перейти», работа продолжится где-то в фоновом режиме (я вижу, что переменные изменяются). Если я нажму «Шаг возврата», стрелка снова появится и продолжит видимый код.
Я также хотел бы отметить, что эти конкретные модули были предоставлены как есть и не устанавливались с помощью CPAN. Расположение пакетов относительно кода, который их использует, выглядит следующим образом:
folder A/ #General folder
folder B/ #Where the scripts which use the above mentioned modules are located
folder C/ #Where the modules are located
Я надеюсь, что мой вопрос достаточно ясен, однако, если это не так, пожалуйста, прокомментируйте, и я уточню.
ОБНОВЛЕНИЕ Я включил «Консоль отладчика (экспериментальная)» EPIC, и кажется, что когда я достигаю проблемного модуля во время процесса отладки, возникает ошибка. К сожалению, я не могу прочитать и понять эти данные отладчика. Ошибка представляет собой очень длинное сообщение, которое частично вставлено ниже:
S00000003$^AS00000002''NS00000003$^DS000000010NS00000003$^ES0000001b'No such file or directory'NS00000003$^FS000000012NS00000003$^HS00000003256NS00000003$^LS00000003
Полное сообщение об ошибке доступно по этой ссылке.
Может это прольет свет..
ОБНОВЛЕНИЕ 2 Мне предложили проверить, существует ли соответствующий путь к модулю в «Perl Include Path» в свойствах проекта в Eclipse. К сожалению, я сделал это без изменений.