调试Perl分段错误
发布时间:2020-12-16 06:17:39 所属栏目:大数据 来源:网络整理
导读:我正在使用 AcePerl从wormbase.org数据库下载数据. 当我下载某些数据库对象时,我得到(在一定数量的对象之后)一个分段错误.此行为是可重现的. 我看了一下核心转储,并在那里打印了大量的函数调用: #0 0xb763c0ac in ?? () from /lib/i386-linux-gnu/libc.so.6
我正在使用
AcePerl从wormbase.org数据库下载数据.
当我下载某些数据库对象时,我得到(在一定数量的对象之后)一个分段错误.此行为是可重现的. 我看了一下核心转储,并在那里打印了大量的函数调用: #0 0xb763c0ac in ?? () from /lib/i386-linux-gnu/libc.so.6 #1 0xb763eddc in malloc () from /lib/i386-linux-gnu/libc.so.6 #2 0x080c07ca in Perl_safesysmalloc () #3 0x080f3a02 in Perl_sv_grow () #4 0x080ebe38 in Perl_sv_setsv_flags () #5 0x080ecb76 in Perl_newSVsv () #6 0x0811516f in Perl_save_item () #7 0x080c7dd8 in Perl_get_db_sub () #8 0x080e7a4c in Perl_pp_entersub () #9 0x08075570 in Perl_call_sv () #10 0x080edd25 in Perl_sv_clear () #11 0x080ee3eb in Perl_sv_free2 () #12 0x080d79ec in Perl_hv_free_ent () #13 0x080d7c8c in ?? () #14 0x080db6ff in Perl_hv_undef_flags () #15 0x080edf72 in Perl_sv_clear () #16 0x080ee3eb in Perl_sv_free2 () #17 0x080d79ec in Perl_hv_free_ent () #18 0x080d7c8c in ?? () #19 0x080db6ff in Perl_hv_undef_flags () #20 0x080edf72 in Perl_sv_clear () #21 0x080ee3eb in Perl_sv_free2 () #22 0x080d79ec in Perl_hv_free_ent () #23 0x080d7c8c in ?? () #24 0x080db6ff in Perl_hv_undef_flags () #25 0x080edf72 in Perl_sv_clear () #26 0x080ee3eb in Perl_sv_free2 () #27 0x080d79ec in Perl_hv_free_ent () #28 0x080d7c8c in ?? () #29 0x080db6ff in Perl_hv_undef_flags () #30 0x080edf72 in Perl_sv_clear () #31 0x080ee3eb in Perl_sv_free2 () #32 0x080d79ec in Perl_hv_free_ent () #33 0x080d7c8c in ?? () #34 0x080db6ff in Perl_hv_undef_flags () #35 0x080edf72 in Perl_sv_clear () #36 0x080ee3eb in Perl_sv_free2 () #37 0x080d79ec in Perl_hv_free_ent () #38 0x080d7c8c in ?? () #39 0x080db6ff in Perl_hv_undef_flags () #40 0x080edf72 in Perl_sv_clear () #41 0x080ee3eb in Perl_sv_free2 () #42 0x080d79ec in Perl_hv_free_ent () #43 0x080d7c8c in ?? () #44 0x080db6ff in Perl_hv_undef_flags () #45 0x080edf72 in Perl_sv_clear () #46 0x080ee3eb in Perl_sv_free2 () #47 0x080d79ec in Perl_hv_free_ent () #48 0x080d7c8c in ?? () #49 0x080db6ff in Perl_hv_undef_flags () #50 0x080edf72 in Perl_sv_clear () #51 0x080ee3eb in Perl_sv_free2 () #52 0x080d79ec in Perl_hv_free_ent () #53 0x080d7c8c in ?? () ... 这些函数调用重复数千次. 是否有更方便的方法来调试此脚本? 编辑: 解决方法
安装
Devel::Trace.
在启用跟踪的情况下运行perl脚本: perl -d:Trace myscript.pl >trace 2>&1 关闭文件以查看执行哪些Perl行导致分段错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |