linux下调用mysql_query产生SIGSEGV段错误

2023-05-16



程序需要用到MySQL来进行持久化,代码在windows测试通过,但在Linux调试时,产生下面的异常:

Thread 9 "NodesManagerd" received signal SIGSEGV, Segmentation fault.      
[Switching to Thread 0x7ffff2b08700 (LWP 9389)]                                                  
0x00007ffff77f1dc0 in ?? () from /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20

通过调试,最后定位到是执行mysql_query产生的问题:

265   assert(_handle != nullptr && sql != nullptr);                                                    
(gdb) n                                                                                                                          
266   if (mysql_query(_handle, sql) != 0)                                                                   
(gdb) n                                                                                                                          

Thread 9 "NodesManagerd" received signal SIGSEGV, Segmentation fault.       
0x00007ffff77f1dc0 in ?? () from /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20 


_handle不为空,sql(SELECT NodeId, LastKeepAlive, Status FROM NodeStatus;)正常。起初不明白为什么出现这样的问题,sql没有问题,问题只能出现在_handle。查看_handle初始化方式如下:

_handle = mysql_init(&_mysql);

将初始化方式改为:

_handle = mysql_init(nullptr);

问题解决。但不知为什么第一种方式在windows上正常运行,在linux却当掉。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux下调用mysql_query产生SIGSEGV段错误 的相关文章

  • 应用程序无缘无故地被杀死。怀疑 BSS 高。如何调试呢?

    我已经在CentOs6 6中成功运行我的应用程序 最近 硬件 主板和内存 更新了 我的应用程序现在毫无理由地被杀死 root localhost PktBlaster PktBlaster Killed 文件和 ldd 输出 root lo
  • 是否可以将新表和旧表从触发器传递到 MySQL 中的过程中?

    是否可以将新表和旧表从触发器传递到 MySQL 中的过程中 我怀疑不会 因为没有过程接受的表这样的数据类型 有什么可能的解决方法吗 理想情况下它看起来像这样 CREATE TRIGGER Product log AFTER UPDATE O
  • Linux TUN/TAP:无法从 TAP 设备读回数据

    问题是关于如何正确配置想要使用 Tun Tap 模块的 Linux 主机 My Goal 利用现有的路由软件 以下为APP1和APP2 但拦截并修改其发送和接收的所有消息 由Mediator完成 我的场景 Ubuntu 10 04 Mach
  • 当复选框条件更改时,如何使用ajax更新mysql数据库?

    我有一个在客户端按行显示的文章表 每篇文章都有一个唯一的 ID 并包含一个复选框以指示该文章是否被选中为收藏夹 如果它是最喜欢的 则该复选框已被选中 如果没有 则未选中 现在 如果特定于每一行的复选框条件发生变化 我需要 js 或 jque
  • 为什么 Linux perf 使用事件 l1d.replacement 来处理 x86 上的“L1 dcache misses”?

    在英特尔 x86 上 Linux用途 https stackoverflow com a 52172985 149138事件l1d replacements来实施其L1 dcache load misses event 该事件定义如下 计数
  • 无法连接到 Node.js 上的 MySQL 数据库

    我仍然不明白为什么在尝试连接到 Node js 上的 MYSQL Server 时仍然收到此错误消息 ERROR Error ER ACCESS DENIED ERROR Access denied for user root localh
  • 在一个后台为MYSQL的网站上集成搜索

    我有一个位置搜索website http www jammulinks com对于一个城市 我们首先收集该城市所有可能类别的数据 如学校 学院 百货商店等 并将其信息存储在单独的表中 因为每个条目除了名称 地址和电话号码外都有不同的详细信息
  • sendfile64 只复制约2GB

    我需要使用 sendfile64 复制大约 16GB 的文件 到目前为止我所取得的成就是 include
  • 在哪里可以找到并安装 pygame 的依赖项?

    我对 Linux 比较陌生 正在尝试安装 python 的 pygame 开发环境 当我运行 setup py 时 它说我需要安装以下依赖项 我找到并安装了其中之一 SDL 然而 其他人则更加难以捉摸 Hunting dependencie
  • MySQL 数据库无法在 XAMPP for Mac 上启动

    突然我在 mac 上遇到了这个问题 我无法启动我的 MySQL 数据库 我只能启动 ProFTPD 和 Apache Web Server 这是应用程序日志 Starting all servers Starting MySQL Datab
  • 使用 sed 更新 xml 属性(Windows + cygwin 和 Linux)?

    我需要使用 sed 命令对 xml 文件进行更新 但我在这方面遇到了麻烦 它需要在 Windows 使用 cygwin 和 Linux 上运行 XML 具有以下元素
  • fopen 不返回

    我在 C 程序中使用 fopen 以只读模式 r 打开文件 但就我而言 我观察到 fopen 调用没有返回 它不返回 NULL 或有效指针 执行在 fopen 调用时被阻止 文件补丁绝对正确 我已经验证过 并且不存在与权限相关的问题 任何人
  • MySQL - 多个结果集

    我正在使用 NET Connector 连接到 MySQL 在我的应用程序中 很少有线程使用相同的连接 因此如果 MySQLDataReader 尚未关闭并且某个线程正在尝试执行查询 则会出现该错误 已经有一个打开的 DataReader
  • 日期时间与时间戳字段

    我是 MySQL 数据库的新手 您是否建议在表创建中使用日期时间或时间戳字段以及原因 我正在使用 MySQL 5 7 和 innodb 引擎 Thanks 我会用TIMESTAMP对于任何需要自动管理的事情 因为它支持诸如ON UPDATE
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 如何为我的整个 Node.js 应用程序使用相同的 MySQL 连接?

    我有一个app js 我从那里运行我的整个应用程序 在 app js 内部 我require许多文件中都有代码 对于每个文件 我都这样做 var mysql require mysql var mclient mysql createCon
  • 使用来自另一个数据库的选择查询更新 mysql 表

    我有两个数据库 我想用另一个数据库表中的值更新一个表 我正在使用以下查询 但它不起作用 UPDATE database1 table1 SET field2 database2 table1 field2 WHERE database1 t
  • MySQL 可选的带有 MATCH 的 LEFT JOIN

    我有以下查询 它对 MySQL Innodb 数据库中同一搜索词的两个不同表中的两列执行全文搜索 SELECT Id MATCH tb1 comment tb2 comment AGAINST search term IN BOOLEAN

随机推荐

  • 不同方式输出九九乘法表(java)

    方式一 xff1a System out println 34 打印正方形 34 正方形 for int i 61 1 i lt 61 9 i 43 43 外层循环控制行 for int j 61 1 j lt 61 9 j 43 43 内
  • Blazor Json Web Token 身份验证与授权

    Blazor 身份验证与授权 身份验证 Blazor Server应用和 Blazor WebAssembly 应用的安全方案有所不同 Blazor WebAssembly Blazor WebAssembly 应用在客户端上运行 由于用户
  • 编程之美读书笔记_3.3_计算字符串的相似度

    3 3 计算字符串的相似度 和计算两字符串的最长公共子序列相似 设Ai 为字符串A a1a2a3 am 的前i 个字符 xff08 即为a1 a2 a3 ai xff09 设Bj 为字符串B b1b2b3 bn 的前j 个字符 xff08
  • vxworks 开发环境搭建

    安装指南 1 安装VxWorks6 9 xff08 光盘文件是DVD R147826 1 1 01 vx69 udf iso xff09 1 不要选择两个check 选项 xff0c 可以节省不必要的时间 xff1b 2 Next 到如图
  • ffmpeg调用avformat_open_input打开rtmp转发流阻塞

    G28181协议接入时 xff0c 为了减少视频处理服务的改动 xff0c 故采用了rtmp转发的方案 使用nginx搭建rtmp转发服务器 xff0c 设备代理将流推送给nginx xff0c nginx再将流转发给视频处理服务 但设备代
  • 交叉编译一个能在mips下运行的vim编译器

    有了交叉编译环境 xff0c 下一步就能在我的路由器和光猫上搞更多的事情了 我的目标是编译出能够在路由器上运行的二进制程序 1 对交叉编译的理解 什么是交叉编译 xff1f 我们常用的路由器 光猫 电视盒等等都运行着一个系统 xff0c 它
  • CAP 定理的含义

    CAP 定理的含义 作者 xff1a 阮一峰 日期 xff1a 2018年7月16日 分布式系统 xff08 distributed system xff09 正变得越来越重要 xff0c 大型网站几乎都是分布式的 分布式系统的最大难点 x
  • boost::any实现解析

    忘记当初具体想做什么了 xff0c 只记得要求 xff1a 将各种类型 xff08 如int xff0c char xff0c float xff0c 自定义类型等 xff09 放到一个容器里 这样的要求 xff0c 目前stl的任何容器都
  • 程序性能优化工具——gprof

    gprof是程序性能分析的一个重要工具 xff0c 通过gprof工具可以获取程序中函数之间的调用关系 xff0c 每个函数的调用次数 xff0c 及函数的消耗时间 xff0c 从而为程序性能优化指明方向 由此也可以推断出 xff0c 一个
  • 程序性能优化之分支预测

    程序是由多条指令构成的 xff0c 程序的运行便是cpu一条一条执行程序指令的过程 一条指令的执行过程大致可以分为加载指令 xff0c 翻译指令 xff0c 加载数据 xff0c 执行运算 xff0c 更新数据几个阶段 xff0c 每个阶段
  • 初识valgrind

    valgrind是一款非常优秀的性能调试工具 xff0c 通过valgrind xff0c 可以完成以下几点工作 xff1a 1 Memcheck xff1a 内存错误检测 2 Cachegrind xff1a 缓存和分支预测分析 3 Ca
  • 服务运维-日志

    服务一般情况下运行在后台 xff0c 没有界面 xff0c 很难观察到服务的状态 因此 xff0c 对于服务运维 xff0c 日志变成了一个非常重要的工具 通过服务日志 xff0c 可以了解到服务的运行状态 xff0c 如服务是否正常运行
  • 如何查看cpu是否支持sse指令级

    Mac xff1a 命令 xff1a sysctl a grep machdep cpu features 结果 xff1a machdep cpu features FPU VME DE PSE TSC MSR PAE MCE CX8 A
  • Mac系统下VSCode配置gopath

    golang项目的编译和调试依赖gopath 命令行可以通过export为每个golang项目导出不同的gopath xff0c 使用VSCode也可以通过配置 xff0c 实现不同的golang项目使用不同gopath xff0c 步骤如
  • GDB打印vector指定元素

    使用GDB调试程序时 xff0c 需要查看变量的值 对于普通变量 xff0c 直接使用p命令即可 xff0c 如下 xff1a 对于vector xff0c 也可以使用相同的方法 xff0c 如下 xff1a vector元素较少时 xff
  • Linux中学教程(一)

    突然想写点关于linux的东西 xff0c 一是将自己几十年来零碎的知识作以串联 xff0c 二是能为正在学习路上的新手作些指引 而恰好作者的孩子是一位初一的学生 xff0c 我写的这些东西也正是我手把手教授他的 xff0c 现在分享出来并
  • libevent之eventop

    功能 xff1a IO处理模型 架构 xff1a 实现 xff1a event internal h定义eventop结构体 xff0c 在 c文件实例化生成对应的全局对象 xff0c 如在poll c中生成pollops对象 event
  • C++ Lambda表达式的使用方法

    C 43 43 Lambda表达式的简单实用方法如下 xff1a include lt functional gt include lt algorithm gt include lt iostream gt include lt list
  • Visual Code 配置golang开发环境

    1 去微软官网下载安装Visual Code http code visualstudio com Download 安装成功后 xff0c 打开命令行 xff0c 输入go version xff0c 会输出golang 版本 如果没有输
  • linux下调用mysql_query产生SIGSEGV段错误

    xfeff xfeff 程序需要用到MySQL来进行持久化 xff0c 代码在windows测试通过 xff0c 但在Linux调试时 xff0c 产生下面的异常 xff1a Thread 9 34 NodesManagerd 34 rec