2012-02-16 2 views
7

다른 Perl 버전에서 단 몇 줄의 코드로 격리 할 수 ​​있었던 세그먼트 오류를 ​​추적하려고합니다. perlbrew를 사용하여 다양한 버전의 개발 및 테스트를 관리하지만 디버깅 기호로 perl을 빌드하지 않으므로 gdb를 사용하여 코어 덤프 파일을 분석하는 것은 거의 쓸모가 없습니다.perlbrew를 사용하여 디버깅 기호가있는 perl 빌드

디버깅 기호를 사용하여 perlbrew 빌드를 사용하는 가장 좋은 방법은 무엇입니까? 그리고 가능하다면 같은 버전의 표준을 오버라이드하는 대신에 전환 할 수있는 별도의 펄이 될 수 있기를 바랍니다.

답변

11
perlbrew install -v 5.14.2 --as=5.14.2d -DEBUGGING=-g 

(--as 다른 이름으로두고, 그래서 당신은 당신의 빌드 기존 유지할 수 있습니다.)

또한 당신은 분명히 필요가 없습니다 위의 물건을 포함하는 다음과 같은있다 :

perlbrew install -v 5.14.2 --as=5.14.2d -DEBUGGING=both 

Perl 배포판의 루트 디렉토리에있는 INSTALL을 참조하십시오.

+0

이것은 내가 찾고있는 것 같지만 작동하지 않는 것 같습니다. 나는이 명령을 실행했다. perlbrew install perl-5.8.8 --as = 'perl-5.8.8-debug'-DEBUGGING = both'. 그런 다음 gdb를 검사하기 위해'gdb/home/mpeters/perl5/perlbrew/perls/perl-5.8.8-debug/bin/perl'을 실행했고 gdb는 여전히 "/ home/mpeters/perl5/perlbrew/perls/perl-5.8.8-debug/bin/perl ... (디버깅 기호가 없습니다. "), 그래서 분명히 나는 ​​여전히 뭔가를 놓치고 있습니다. – mpeters

+0

'-DEBUGGING = both'가 당시에 존재하지 않았을 수 있습니까? 올바른 버전 배포판에 대한'INSTALL' 파일을 확인하십시오. ('-Doptimise = -g'는 그때까지 작동해야합니다.) 고대 소프트웨어를 사용하고있을 때 정말 언급해야합니다. (5.8은 처음 10 년 전에 출시되었으며 5.8 및 5.10은 더 이상 지원되지 않으며 5.12도 EOLed 될 예정 임) – ikegami

+0

옵션에 대한 힌트를 주셔서 감사합니다. 나는 perlbrew install perl-5.8.8 --as = 'perl-5.8.8-debug'-Doptimize = '-g''로 갔고 그것은 매력처럼 작동했습니다. 감사. – mpeters