이것은 지나치게 구체적 일지 모르지만 여기에 게시하면 기본 SPEC 벤치 마크 하네스 외부에서 SPEC 2006 벤치 마크를 컴파일/실행하는 데 도움이 될 수 있습니다. (SPEC 하네스는 결과 코드의 성능에만 초점을 맞추는 반면, 이렇게하는 우리의 이유는 컴파일 전략과 코드 적용 범위를 비교하는 것입니다.)perlbench는 SPEC 2006 하네스 외의 segfault를 초래합니다
이Program received signal SIGSEGV, Segmentation fault.
0x00000000004f6868 in S_regmatch (prog=0x832144)
at <path-to-spec>/CPU2006/400.perlbench/src/regexec.c:3024
3024 PL_reg_start_tmp[n] = locinput;
(gdb) bt
#0 0x00000000004f6868 in S_regmatch (prog=0x832144)
at <path-to-spec>/CPU2006/400.perlbench/src/regexec.c:3024
#1 0x00000000004f22cf in S_regtry (prog=0x8320c0, startpos=0x831e70 "o")
at <path-to-spec>/CPU2006/400.perlbench/src/regexec.c:2196
#2 0x00000000004eba71 in Perl_regexec_flags (prog=0x8320c0, stringarg=0x831e70 "o", strend=0x831e71 "",
strbeg=0x831e70 "o", minend=0, sv=0x7e2528, data=0x0, flags=3)
at <path-to-spec>/CPU2006/400.perlbench/src/regexec.c:1910
#3 0x00000000004b33bb in Perl_pp_match()
at <path-to-spec>/CPU2006/400.perlbench/src/pp_hot.c:1340
#4 0x00000000004fcde4 in Perl_runops_standard()
at <path-to-spec>/CPU2006/400.perlbench/src/run.c:37
#5 0x000000000046bf57 in S_run_body (oldscope=1)
at <path-to-spec>/CPU2006/400.perlbench/src/perl.c:2017
#6 0x000000000046b9f6 in perl_run (my_perl=0x7bf010)
at <path-to-spec>/CPU2006/400.perlbench/src/perl.c:1934
#7 0x000000000047add2 in main (argc=4, argv=0x7fffffffe178, env=0x7fffffffe1a0)
at <path-to-spec>/CPU2006/400.perlbench/src/perlmain.c:98
실행 환경은 64 비트 Linux과 행동이 최신 GCC와 그 소리를 모두 관찰 :
는 세그먼트 오류와 perlbench 벤치 마크 충돌의 심판 실행을 수행 할 때.이 충돌의 원인은 무엇입니까?
이것은 https://github.com/briandfoy/perlbench 다른 뭔가처럼 보이지만, 그렇지 않은 경우 다음을 수행 할 수 있습니다 그래서 여기 당신이 가고, 어쨌든 외부에서 accesible 것 같다 GitHub에서 문제를 만듭니다. –
실제로는 다릅니다. 나는 https://github.com/briandfoy/perlbench에 대해 몰랐다. 이 질문 중 하나는 SPEC CPU 2006 벤치 마크 슈트의 일부이며 C 컴파일러 및/또는 하드웨어, OS 등의 벤치 마크로서 perl 인터프리터를 사용하고 있습니다. – stanm