远程调试MySQL内核

news2024/11/24 12:54:54

1 vscode 需要安装remote-ssh插件

在这里插入图片描述
安装成功后,登录:
在这里插入图片描述
默认远程服务器的登录

ssh root@ip

注意,Linux需要设置root远程登录;

2 安装debug扩展

C\C++ extemsion Pack
C\C++

在这里插入图片描述
gdb debugger beyond用于进程attach
在这里插入图片描述

3 设置Attach进程

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "by-gdb",
            "request": "attach",
            "name": "Attach(gdb)",
            "program": "${fileBasenameNoExtension}",
            "cwd": "${workspaceRoot}",
            "processId": 199182
        }
    ]
}

这里

 "processId": "${command:pickRemoteProcess}",

填写mysql的进程ID;

# lsof -i:3306
COMMAND    PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
mysqld  199182 mysql   17u  IPv6 1323770      0t0  TCP *:mysql (LISTEN)
#

4 断点

sql_parse.cc文件
函数:

int mysql_execute_command(THD *thd, bool first_level = false);

(备注,mysql必须是debug版本)
在这里插入图片描述

MySQL客户端登录,执行命令:

# mysql -h localhost -uroot -P3306 -p12345678
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.42-debug Source distribution

Copyright (c) 2000, 2023, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql> show databases;
(断点)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/841630.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatis源码剖析之Mapper代理方式细节

MyBatis是一个流行的Java持久层框架,它提供了多种方式来执行数据库操作,其中之一就是通过Mapper代理方式。通过Mapper代理方式,开发者可以编写接口,然后MyBatis会动态地生成接口的实现类,从而避免了繁琐的SQL映射配置。…

前端主题切换方案——CSS变量

前言 主题切换是前端开发中老生常谈的问题,本文将介绍主流的前端主题切换实现方案——CSS变量 CSS变量 简介 编写CSS样式时,为了避免代码冗余,降低维护成本,一些CSS预编译工具(Sass/Less/Stylus)等都支…

Java基础入门篇——Java注释、关键字和标识符(二)

目录 一、注释 1.1注释介绍 1.2单行注释 1.3多行注释 1.4文档注释 1.5javadoc注释标签语法 二、关键字 三、字面量 3.1什么是标识符? 3.2标识符命名规则 四、总结 一、注释 在Java中,注释是用来向代码添加解释、说明和文档信息的文本。Java…

网工这行最大的内卷,就是养了一批“HCIE”

下午好,我是老杨。 这段时间,我个人工作上的事儿挺多,一直在处理。 手底下的一个重要项目组,想招个新人,面了几批都不满意,难搞。 前两天刚定下人选,现下和你聊上几句。 上回说过&#xff0…

Killing LeetCode [82] 删除排序链表中的重复元素 II

Description 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 Intro Ref Link:https://leetcode.cn/problems/remove-duplicates-from-sorted-list-ii/ Difficulty:Medium T…

怎么在树莓派环境上搭建web网站,并发布到外网可访问,今天教给大家

怎么在树莓派上搭建web网站,并发布到外网可访问? 文章目录 怎么在树莓派上搭建web网站,并发布到外网可访问?概述使用 Raspberry Pi Imager 安装 Raspberry Pi OS测试 web 站点安装静态样例站点 将web站点发布到公网安装 Cpolarcpo…

OpenStack监控工具

OpenStack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。由NASA和Rackspace合作研发并发起,以Apache许可证(Apache软件基金会发布的一个自由软件许可证)授权。 OpenStack为私有云和公有云提供可扩展的弹性的云计算…

mac电脑三维建模 Rhino 7中文 7.32

Rhino 7特别功能介绍 • 不受约束的自由形式 3D 建模工具,如仅在成本高出 20 到 50 倍的产品中发现的工具。为您可以想象的任何形状建模。 • 设计、原型、工程、分析和制造从飞机到珠宝的任何东西所需的准确性。 • 与您的所有其他设计、绘图、CAM、工程、分析、…

git使用(常见用法)

一.下载git git官方下载跳转 安装简单,有手就行 二. git的简单使用 1. 连接远程仓库 #初始化 git init #配置账户 git config --global user.name “输入你的用户名” git config --global user.email “输入你的邮箱” git config --list #--q退出 #配置验证邮箱 ssh-key…

vue2 引用swiper

参考引用 : vue使用swiper实现轮播图一页多张图片效果_swiper多张图片排列的轮播_空空的博客-CSDN博客 vue2 使用swiper_vue2使用swiper__NIXIAKF的博客-CSDN博客 常见的属性:Swiper 中常见的属性以及方法_swiper-wrapper_超勇的.的博客-CSDN博客 1、…

8月16日起!亚马逊新商品上架需更新产品类型的274个属性!

亚马逊美国站发布公告称为了帮助买家更轻松地搜索产品,改善买家的购买决策提高卖家的销量,8月16日起受影响的200种产品类型的274个属性在上架前需更新属性,以下是公告内容: 自2023年8月16日起,200种产品类型的274个属…

想在金融界拥有一席之地吗—社科院杜兰大学金融管理硕士助你圆梦

追求高学历是为了什么?一纸证书吗?显然并非如此,只有读过研的人才有话语权。在上升一个平台后,你必然会发现,更高学历得到的不止是一张文凭。而是更大的平台、更广阔的视野、更包容的环境,更多样的文化。最…

Clion开发Stm32之存储模块(W25Q64)驱动编写

前言 涵盖之前文章: Clion开发STM32之HAL库SPI封装(基础库) W25Q64驱动 头文件 #ifndef F1XX_TEMPLATE_MODULE_W25Q64_H #define F1XX_TEMPLATE_MODULE_W25Q64_H#include "sys_core.h" /* Private typedef ---------------------------------------------------…

【0805作业】Linux中 AB终端通过两根有名管道进行通信聊天(半双工)(全双工)

作业一:打开两个终端,要求实现AB进程对话【两根管道】 打开两个终端,要求实现AB进程对话 A进程先发送一句话给B进程,B进程接收后打印B进程再回复一句话给A进程,A进程接收后打印重复1.2步骤,当收到quit后&am…

最佳路径优先搜索算法

本来想直接写A* 的,不过看完最佳路径优先搜索算法后觉得还是要先理解一下这个算法后才能更好的理解A* 算法,所以把这篇文章放到A* 前面。 基本概念 最佳优先搜索算法(Best-first-searching)是一种启发式搜索算法(Heu…

element vue2 动态添加 select+tree

难点在 1 添加一组一组的渲染 是往数组里push对象 循环的;但是要注意对象的结构! 因为这涉及到编辑完成后,表单提交时候的 校验! 是校验每一个select tree里边 是否勾选 2 是在后期做编辑回显的时候 保证后端返回的值 是渲染到 select中的tr…

Markdown系列之Flowchat流程图

一.欢迎来到我的酒馆 介绍Markdown的Flowchart流程图语法。 目录 一.欢迎来到我的酒馆二.什么是Flowchart三.更进一步 二.什么是Flowchart 2.1 Flowchart是一款基于javascript的工具,使用它可以用代码创建简单的流程图。具体信息可以查看flowchart官网:…

vscode 设置滑条颜色

1. 默认的滑条是灰黑色的,很难看的清 2. 左下角,打开VS Code 设置功能 3. 输入命令 workbench color,回车 4. 找到工作台:自定义颜色设置,打开设置文件 setting.json 5. 打开配置文件 6. 添加颜色配置 "workben…

【C++】开源:事件驱动网络库libevent配置使用

😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍事件驱动库libevent配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&#xf…

C++——STL容器【priority_queue】模拟实现

本章代码:优先级队列模拟实现、priority_queue文档 文章目录 🐈1. priority_queue介绍🦄2. priority_queue模拟实现🐧2.1 构造函数🐧2.2 建堆向下调整向上调整 🐧2.3 仿函数🐧2.4 push & po…