zoukankan      html  css  js  c++  java
  • 编译,调试JVM过程中的各种问题(血泪史)

    希望能帮到有需要的人,不要像我一样花费了许多时日

    问题1:

    com.jetbrains.cidr.execution.debugger.backend.gdb.GDBDriver$GDBCommandException: Error creating process /cygdrive/f/jdk8u/jdk8u/build/linuxR/jdk/bin/java, (error 193).

    我在centos 7.6 上用 gcc4 编译出了jvm的代码,但是把代码拷贝到win10,用Clion调试,报上面错误。

    根本原因没有找到,应该是linux编译出来的产物在win环境下无法兼容。

    于是转ubuntu,在ubuntu上编译,ubuntu试了最新版本18.x 和 比较老版本12.x 和 适中版本16.x

    结果:

      18.x的问题:

       在18.x上,前期准备都正常,但是到 make images 编译的时候,会报 All warnings are treated as errors。网上查是要把 Makefile 的 Werror 选项删除。

          但是在我的项目Makefile中没有找到这个选项,怀疑是gcc的版本太新。想降级 gcc 又找不到合适的 apt 源 , 于是用了旧的 ubuntu 12.x版本。

      12.x的问题:

       在12.x上,版本太久,以至于在用 apt 下载依赖的时候报 : dpkg 无法识别 tar.xz 文件。(contains ununderstood data member xxx.tar.xz),转用中间版本16.x

      最终在16.x上完成 

    问题2:

      apt 安装依赖问题。我是个ubuntu小白,不知道 apt 用法,一步一步的摸索,解决了不少问题。

      1.无法定位依赖包 ( unable to locate package )

        可能是没有合适的 apt 源, apt 源是提供文件下载的。可以用 sudo gedit /etc/apt/sources.list 增加国内源(阿里云的比较好用)

        如果是安装libX11库,可以试一下把X改成小写x 。这真的是......

      2.出现类似

        xxx :

          aaa(xxx依赖的包)

          bbb(xxx依赖的包)

      这种情况,我的情况是因为下载某个包(xxx)要依赖的包(aaa, bbb)太新了,无法下载 这个包(xxx),所以把 aaa 和 bbb 都卸载掉,然后再安装xxx,这是我的办法,因为我的虚拟机上没装什么,只供参考,千万不要不顾自己的情况随便照着我的来。  

    问题3:

      Debug 时,Clion的左下方的调用堆栈都是 <Unknown>,去看一下Debugger的GDB,会发现有 No Source File Named XXX 的错误。

      这时候要找到 libjvm.diz ,(可在项目中搜索)然后解压到各自的当前目录,这个压缩包里有debug的信息。

    问题4:

      下载源码问题。注意,要用 Mercurial 的 hg 命令下载代码才可以用 get_source.sh , 因为需要通过他下载一些依赖。(或者你本身就有这些依赖)

      Mercurial 下载过程总是网络中断,可以采用分段下载, 就是 hg -r 1 clone xxx,之后 hg update -r 版本号 , 最后 hg update

      get_source.sh其实也是多个 hg 指令, 所以我分开来 手动输入 hg 各自分段下载,解决了网络中断问题。

      

  • 相关阅读:
    05Mybatis_入门程序——根据id查询用户
    04Mybatis_搭建Mybatis的开发环境
    03Mybatis_mybatis框架原理——执行流程
    02Mybatis_原生态jdbc编程中的问题总结——从而引生出为什么要用Mybatis
    01Mybatis_课程安排
    21SpringMvc_异步发送表单数据到Bean,并响应JSON文本返回(这篇可能是最重要的一篇了)
    20SpringMvc_结果的转发可共享参数;重定向不能共享参数
    19SpringMvc_在业务控制方法中收集List集合中包含JavaBean参数
    18SpringMvc_在业务控制方法中收集数组参数
    阿里架构师,讲述基于微服务的软件架构模式(附资料)
  • 原文地址:https://www.cnblogs.com/lqlqlq/p/12926984.html
Copyright © 2011-2022 走看看