编译调试openjdk

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,即可完成调试!

3.gdbinit语法

GDB配置与.gdbinit的编写
GDB实用插件(peda, gef, gdbinit)全解

    原文作者:王侦
    原文地址: https://www.jianshu.com/p/0982a17a7ba4
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞