Dear Zhangwuxiang, Generally, Flexus segmenation-faults right after being loaded mean that the libstdc++.so.6 library in the Simics distribution does not match the one that Flexus was built with.
Simics 3 includes a fairly old version of libstdc++.so in the directory 'simics/amd64-linux/sys/lib'. Flexus requires a newer libstdc++. As such, when you run 'make install', Flexus copies the libstdc++ from the GCC that Flexus is built with and overwrites Simics' libstdc++. If you check the list archives, you will see that other people had similar problems with libstdc++. I suggest you try the following steps to see if the library issue is the problem: 1) Run 'make all-clobber' in your Flexus directory to remove all compiled binaries. 2) Run 'make install'. Check simics/x86-linux/sys/lib to make sure that the install procedure has actually copied the correct version of libstdc++ (matching the one in the lib subdirectory of your gcc installation). 3) Build Flexus. 4) Try starting Flexus and see if you get a segmentation-fault. Regards, Pejman ________________________________________ From: zhangwuxiang [mailto:[email protected]] Sent: Tuesday, August 27, 2013 11:31 AM To: simflex Subject: Segmentation fault when running flexus Hi, all I got a error when running flexus.The command is run_job -cfg trace -run trace -local CMP.L2Shared.Trace cassandra/1cpu ,and it shows: Flexus Simics simulator - Built as CMP.L2Shared.Trace v1.0 1 <startup.cpp:121> {0}- Initializing Flexus. Segmentation fault (SIGSEGV) in main thread The simulation state has been corrupted. Simulation cannot continue. Please restart Simics. </home/hwsim/flexus-4.1/result/trace-CMP.L2Shared.Trace-27Aug13-164427/cassandra/1cpu/000_000 Then I used gdb to trace, and it shows: Loaded symbols for /usr/lib64/libstdc++.so.6 0x0000003db380f3cb in raise () from /lib64/libpthread.so.0 Missing separate debuginfos, use: debuginfo-install bzip2-libs-1.0.5-7.el6_0.x86_64 glibc-2.12-1.107.el6_4.2.x86_64 libICE-1.0.6-1.el6.x86_64 libSM-1.1.0-7.1.el6.x86_64 libX11-1.3-2.el6.x86_64 libXau-1.0.5-1.el6.x86_64 libXext-1.1-3.el6.x86_64 libXpm-3.5.10-2.el6.x86_64 libgcc-4.4.7-3.el6.x86_64 libstdc++-4.4.7-3.el6.x86_64 libuuid-2.17.2-12.4.el6.x86_64 libxcb-1.5-1.el6.x86_64 zlib-1.2.3-29.el6.x86_64 (gdb) c Continuing. Program received signal SIGSEGV, Segmentation fault. 0x00000031d7c914df in std::basic_ostream<char, std::char_traits<char> >::flush() () from /usr/lib64/libstdc++.so.6 I think it has sth to do with the libstdc++.so.6, but have no idea about solving it. The gcc version on my system is gcc 4.4.7. It can't work well to using the boost. So I install gcc-4.1.2 in /usr/local, and then modify gcc_path in makefile.defs. Does this influence the libstdc++.so.6? Can anyone give me some suggestion or answer? Look forward your reply.Thank you. 2013-08-27 ________________________________ Best Regards! MAIL: [email protected]<mailto:[email protected]>
