使用perlbrew构建带有调试符号的perl

9
我正在尝试追踪一个分段错误,我已经成功将其隔离到 Perl 的不同版本的几行代码中。我使用 perlbrew 管理开发和测试各个版本,但它不会为构建 Perl 添加调试符号,因此使用 gdb 分析核心转储文件几乎没有用处。
因此,有什么最好的方法可以让 perlbrew 构建带有启用调试符号的 Perl。如果可能的话,我想要它成为一个单独的 Perl,而不是覆盖相同版本的标准 Perl。
1个回答

13
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文件,以构建一个调试版的Perl。


这似乎就是我要找的,但它好像不起作用。我运行了这个命令 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仍然显示“Reading symbols from /home/mpeters/perl5/perlbrew/perls/perl-5.8.8-debug/bin/perl...(no debugging symbols found)”,所以显然我还是缺少一些东西。 - mpeters
“-DEBUGGING=both” 可能在那时不存在?请检查正确版本的发行版的“INSTALL”文件。(即使在那时,“-Doptimise=-g”也应该可以工作。)当您使用古老的软件时,确实应该提到它。(5.8是10年前首次发布的。5.8和5.10不再受支持,5.12也即将停止支持。) - ikegami
感谢您提供的关于选项版本特定性的提示。我选择了 perlbrew install perl-5.8.8 --as='perl-5.8.8-debug' -Doptimize='-g',它完美地解决了我的问题。谢谢。 - mpeters

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接