1.编译失败情况
- ubuntu18.04 编译8 9 10,编译出来后,eclipse调试报错:VM_Version::get_processor_features() SIGSEGV segmentation fault(这个其实不算错误)
- ubuntu16.04编译8,没有–disable-warnings-as-errors,报错
bash ./configure –with-debug-level=slowdebug –with-extra-cflags=-Wall –with-extra-cxxflags=-Wall –disable-warnings-as-errors –with-target-bits=64
make all CONF=linux-x86_64-normal-server-slowdebug LOG=debug,cmdlines
make clean CONF=linux-x86_64-normal-server-slowdebug
2.关于SIGSEGV
GDB调试OpenJDK9时在SafeFetch32函数上发生段错误?
测试本来就是要触发SIGSEGV的,而GDB在调试的时候会在应用程序注册的signal handler之前先获取到signal,要continue才会跑到应用程序注册的signal handler去。您需要的是在GDB里配置:handle SIGSEGV noprint
(”noprint”会隐式也指定了”nostop”,这就正好。如果行为不对的话就手动多指定个nostop:handle SIGSEGV nostop noprint
)
这个在eclipse加载一个gdbinit即可,在gdbinit里面写上:handle SIGSEGV noprint,即可完成调试!