`
BucketLi
  • 浏览: 195826 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
博客专栏
5a76a659-f8e6-3bf3-b39a-8ae8f7a0f9d9
Percolator与分布...
浏览量:5686
社区版块
存档分类
最新评论

Mac 下在 xcode 中 debug MySQL 8.0

阅读更多
专业 MySQL 内核开发选手一般会选用 linux gdb 直接调试,对于我们只是想了解 MySQL 怎么工作的同学来说,更加现实的玩法是找一个体验好点的平台和 IDE 进行学习。MySQL 8.0 的 debug 方式和之前版本大同小异,应该来说更加方便,这边记录下。

1. cmake 安装好,使用 homebrew 即可

2. https://github.com/mysql/mysql-server clone MySQL 源代码

3. clone 完毕之后,在 mysql-server 根目录建一个目录 bld

4. 进入 bld 执行以下命令,.. 表示源代码位置,-G "Xcode" 表示生成 xcode 文件, -DWITH_DEBUG=1 这个选项千万不能忘,否则 debug 找不到行号直接让你看汇编,-DCMAKE_INSTALL_PREFIX 表示编译路径,后面指令是下载 boost

引用
cmake .. -G "Xcode" -DWITH_DEBUG=1 -DCMAKE_INSTALL_PREFIX=绝对路径/mysql-server/bld/install -DDOWNLOAD_BOOST=1 -DWITH_BOOST=绝对路径/mysql-server/bld/install/boost


5. 编译完成后,你就可以看到 MySQL.xcodeproj 文件,xcode 选择这个文件打开,自动生成 schema

6. 选择 ALL_BUILD 并按三角键执行 install , 执行完毕之后会在 bld/runtime_output_directory/Debug 目录生成熟悉的应用程序。

7.  创建一个 my.cnf 放在应用程序目录下(bld/runtime_output_directory/Debug),内容可以简单些,如下

引用
[mysqld]
datadir=绝对路径/mysql-server/bld/runtime_output_directory/data
socket=绝对路径/mysql-server/bld/runtime_output_directory/mysql.sock
port=33061


8. 在命令行,或者在 xcode 中 schema 选择 mysqld, edit schema, 添加如下参数,此处 -- initialize 务必放后面,否则失败

引用
--defaults-file=绝对路径/mysql-server/bld/runtime_output_directory/Debug/my.cnf
--initialize


9.  初次初始化因为我们是选择默认系统初始化 root 用户的密码,所以务必记住日志打印出来的密码,重新启动前去掉 --initialize 参数,使用 root 登陆后会强制让你重设密码。如果这个密码忘了,参见我另外一篇文章《MySQL 8.0 root密码忘了怎么办》

10. 接下来就可以愉快的 debug 了,如果需要 debug 启动初始化过程,可以断点打在 mysqld.cc 文件的 mysqld_main 函数中,如果需要 debug 指令,可以断点打在 sql_parse.cc 文件的 do_command 函数中
分享到:
评论

相关推荐

    iOS 8.0 Xcode开发包

    在iOS应用开发中,Xcode是苹果官方提供的集成开发环境(IDE),用于编写、调试和发布iOS和macOS应用程序。当遇到"Could not find developer disk image"这样的错误时,这通常意味着Xcode无法找到适用于特定iOS版本的...

    xcode8.0以上 配置iOS 10.2 开发包

    本文将详细介绍如何在Xcode 8.0及以上版本配置iOS 10.2 beta开发包,以便开发者能够在最新的操作系统环境下进行应用测试和开发。 1. **下载Xcode 8.0或更高版本** 首先,你需要确保已经安装了Xcode 8.0或更新的...

    xcode真机调试支持包ios8.0

    xcode真机调试所需,从xcode9.2解压获得,使用时解压到 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport即可

    xcode Sdk ios 8.0---12.2版本

    在这个压缩包中,包含的是从iOS 8.0到12.2各个版本的设备支持文件,这些文件对于开发者来说非常重要,因为它们允许Xcode模拟不同版本的iOS系统,以便在多种设备和操作系统环境下进行应用测试。 1. **Xcode SDK**:...

    XCode_Debug.zip_xcode

    在某些情况下,Xcode的“Live Views”功能可以显示UI元素在调试过程中的实时变化。而“Replayable Debugging”允许开发者回放调试会话,重现问题发生的具体过程。 总结,Xcode的调试功能强大且全面,从基本的断点...

    xcode8.0以上 配置iOS 10.2 beta开发包

    首先,你需要确保你的Mac上安装了Xcode 8.0或更新的版本。你可以从App Store进行下载和安装。Xcode的更新通常会包含对最新iOS版本的支持,因此Xcode 8.0应该能够支持iOS 10系列的开发。 二、获取iOS 10.2 Beta SDK ...

    Xcode 8.0以上使用Package Manager的方法

    2. **验证插件是否可用**:成功加载插件后,你可以在Xcode的“Window”菜单下找到“Package Manager”选项,这表明插件已经成功安装并且可以正常使用了。 ### 使用Package Manager的优势 - **便捷性**:通过...

    simPholder-xcode8.0

    本文将详细介绍simPholder在Xcode 8.0版本中的使用和相关知识点。 1. **simPholder简介** simPholder是一款专为iOS开发者设计的实用工具,它提供了直观的界面,使得开发者可以轻松访问和管理Xcode模拟器中的应用...

    xcode 真机调试包 13.0.zip

    在iOS开发过程中,Xcode是苹果官方推荐的集成开发环境(IDE),用于编写Objective-C、Swift等语言的应用程序。这个“xcode 真机调试包 13.0.zip”压缩文件似乎包含了用于真机调试的Xcode 13.0的相关组件,这对于iOS...

    deviceSupport_8.0

    当开发者尝试在Xcode中运行或测试针对iOS 8.0的应用程序时,这个镜像是必不可少的,因为它允许在没有物理设备的情况下在模拟器上模拟iOS 8.0设备的环境。 iOS 8.0是Apple于2014年发布的一个操作系统版本,引入了...

    IOS11SDK xcode8调试IOS11

    xcode8调试IOS11 Shift+Command+G进入 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 把解压后的文件复制进去。

    xcode真机调试包 ios8.0-13.0(第一部分,只含有11.0以下的)

    由于CSDN限制240M文件,因此拆成两份,本部分包含8.0、8.1、8.2、8.3、8.4、9.0、9.1、9.2、9.3、10.0、10.1、10.2、10.3所有的支持文件,11.0以上的请到另一个部分下载,谢谢~

    Xcode 8.0~11.4 设备支持文件

    解压放到以下目录即可让你的Xcode支持8.0~11.4设备的真机调试 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

    Xcode13.0真机调试包

    Xcode 12.3真机调试包,操作如下: 前往--应用程序/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport文件夹,拖到文件目录下之后重启 Xcode 即可

    mac下使用xcode开发opencv(c++)的有关配置.docx

    在Mac上使用Xcode进行OpenCV(C++)开发需要一系列的配置步骤,本文将详细介绍这一过程。首先,确保你的操作系统是macOS Mojave 10.14.4,并且已经安装了Xcode Version 10.2.1 (10E1001)。Xcode通常可以通过Apple的...

    在Mac Xcode下使用SVN

    使用 SVN 在 Mac Xcode 下的配置和使用方法 在 Mac Xcode 下使用 SVN 是一个非常重要的知识点,对于开发者来说尤其重要。下面我们将详细介绍如何在 Mac Xcode 下使用 SVN。 首先,SVN 是什么?SVN(Subversion)是...

    Xcode iOS 8.0真机调试包

    下载好解压到这个目录: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport 重启Xcode。就可以真机调试啦。

    卸载xcode的命令

    在深入讨论卸载命令之前,我们需要先了解Xcode在Mac系统中的安装位置及目录结构。通常情况下,Xcode会被安装到`/Applications`目录下,而其相关的组件则可能会分布在以下路径: 1. `/Library/Developer` 2. `/...

Global site tag (gtag.js) - Google Analytics