2019独角兽企业重金招聘Python工程师标准>>>

前几天测试JIT的时候,执行sdiv和srem的时候,就会发生段错误。执行到了地址0。

后来想起来以前自己做操作系统的时候,64的乘除法是需要自己定义的,也就是说cpu没有对应的指令。

后来,上网查了一些资料,编译,反编译,折腾一番,发现,执行64位的sdiv的时候,其实是应该调用一个叫__divdi3的函数的。前面发生的段错误,应该是llvm没有正确设置这个函数的地址。

今天,在llvm的代码中,搜索了一番,发现了一个指令与库函数名称的映射数组,其中设置了64位除法是与__divdi3进行关联的。

虽然还没看明白llvm内部是怎么做的,但是后来看到个代码,llvm内部DynamicLibrary使用dlopen时是用RTLD_LAZY | RTLD_GLOBAL模式的,查看了一下对RTLD_GLOBAL的解释,然后也采用了这个方法加载JIT动态库,就好了。

转载于:https://my.oschina.net/mycybyby/blog/67286

sdiv和srem问题解决相关推荐

  1. Redis 学习笔记-NoSQL数据库 常用五大数据类型 Redis配置文件介绍 Redis的发布和订阅 Redis_事务_锁机制_秒杀 Redis应用问题解决 分布式锁

    1.NoSQL数据库 1.1 NoSQL数据库概述 NoSQL(NosQL = Not Only sQL ),意即"不仅仅是sQL",泛指非关系型的数据库.NoSQL不依赖业务逻辑 ...

  2. ERR wrong number of arguments for ‘srem‘ command

    ERR wrong number of arguments for 'srem' command 问题描述 再远程调用redis服务得时候,出现得这个异常,字面意思就是参数不匹配 问题解决 原因是因为 ...

  3. org.springframework.dao.InvalidDataAccessApiUsageException: ERR wrong number of arguments for ‘srem‘

    1.报错信息 org.springframework.dao.InvalidDataAccessApiUsageException: ERR wrong number of arguments for ...

  4. Redis篇-03-常见问题解决方式RedisTemplate的命令

    五.Redis常见问题解决方式 1.主从复制风暴(多个从节点同时复制主节点导致主节点压力过大) 2.缓存穿透 ①.什么是缓存穿透 缓存穿透是指查询一个根本不存在的数据, 缓存层和存储层都不会命中, 通 ...

  5. undefined reference to 'pthread_create'问题解决(转)

    undefined reference to 'pthread_create' undefined reference to 'pthread_join' 问题原因:     pthread 库不是 ...

  6. mysql 4.0.27 下载,CentOS编译Mysql 4.0.27数据库问题解决

    CentOS编译Mysql 4.0.27数据库问题解决以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 现在好多人都用起了 ...

  7. oracle实例没有连到监听上6,oracle LISTENER未监听到oracle实例问题解决

    oracle LISTENER未监听到oracle实例问题解决 LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = ...

  8. linux+bin+写入引导区,CentOS 6.4 U盘启动盘制作、安装及遇到的问题解决

    用UltraISO Premium Edition  9.3 制作的CentOS 6.4 U盘安装盘, 安装时提示Press the key to begin the installation pro ...

  9. Oracle不能在本地计算机启动,Windows 不能在本地计算机启动 OracleDBConsoleorcl的问题解决方法...

    解决步骤如下: 1.开始->运行cmd 2.执行 emctl start dbconsole 输入:C:\Documents and Settings\xcl>emctl start db ...

最新文章

  1. SPAdes混合组装二代、三代测序数据
  2. C#机房重构-datagridview控件的使用
  3. ajax后台重定向会返回什么_第三十五天JavaScript中的ajax
  4. 《Windows核心编程》---剪贴板
  5. 市面主要远场语音交互技术架构
  6. 详细配置swagger2
  7. 中软高科WEB前端面试题
  8. 【转】使用spring @Scheduled注解执行定时任务
  9. 使用Chrome谷歌浏览器打开Axure原型图
  10. jQuery版本低引起的漏洞——CVE-2020-11022/CVE-2020-11023
  11. linux 一些好用的软件
  12. Java3:数组和字符串
  13. 关于private继承
  14. jQuery插件库链接
  15. 点集拓扑——基本知识点整理归纳
  16. 电子计算机的加减乘除叫做什么,计算机中加减乘除叫什么键
  17. python编程心得体会800字_Python学习心得体会
  18. JavaMail API 详解
  19. reduce的方法详解
  20. matplotlib 用自定义颜色画散点图

热门文章

  1. Parameter 'cId' not found. Available parameters are [id, param1]
  2. C/C++教程 第一章 —— 初识C/C++
  3. Altium Designer19(AD19)
  4. 惠普1000-1408TX拆机换硅脂,清灰
  5. truelicense实现用于JAVA工程license
  6. chrome浏览器崩溃,设置也崩溃的解决办法
  7. 极智AI | 目标检测实现分享二:听说克莱今天复出了?详解 YOLOv2 算法与克莱检测
  8. H5APP WEB 支付开发 (银联 微信 支付宝)流程
  9. 如何查看服务器的公网IP
  10. 笔记本屏幕给另一台当扩展屏幕_chenjie的博客