clion怎么debug,在c中怎么使用debug调试

1 , 在c中怎么使用debug调试f9断点f10 nextf11 stepf5 run
2,怎么样使用CLion调试分析MySQL Server由于在写MySQL日志订阅服务时候,需要确定在什么event之后保存position,所以就开始研究MySQL的源码 , 刚开始采用最原始的打印输出的方式去调试,然后每次改完编译运行,效率好低,让我很绝望,然后我花了些时间研究下怎么使用CLion Debug MySQL 。获取源码git clone https://github.com/mysql/mysql-server编译安装初始化数据库cd mysql-servercmake \-DCMAKE_INSTALL_PREFIX=/path/mysql/install \-DMYSQL_DATADIR=/path/mysql/data \-DSYSCONFDIR=/path/mysql/etc \-DMYSQL_UNIX_ADDR=/path/mysql/mysql.sock \-DWITH_DEBUG=1\-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/path/mysql-server/ -DDOWNLOAD_BOOST_TIMEOUT=60000make -j 4 make install -j 4mysqld --initialize-insecure --user=root --datadir=/path/mysql/data启动MySQL,测试下是否安装成功 /path/install/bin/mysqld --defaults-file=/path/mysql/etc/my.cnf使用CLion新建工程并打开源码目录之后,设置CLion CMake Options和你编译安装时的选项一致-DCMAKE_INSTALL_PREFIX=/path/mysql/install -DMYSQL_DATADIR=/path/mysql/data -DSYSCONFDIR=/path/mysql/etc -DMYSQL_UNIX_ADDR=/path/mysql/mysql.sock -DWITH_DEBUG=1然后在CLion里,Reload CMake Project在Run/Debug列表里就可以看到很多选项了找到mysqld配置下启动参数 mysqld --defaults-file=/path/mysql/etc/my.cnf然后以Debug模式启动,看下成功的效果
3,clion莫名其妙的报错请各位大神帮忙看下是什么原因先在Run菜单下点Stop(CTRL+F2)再编译运行争议先在Run菜单下点Stop(CTRL+F2)再编译运行再看看别人怎么说的 。【clion怎么debug,在c中怎么使用debug调试】
4,使用CLion 调试 MySQL 解决方案:因为 MySQL 5.6 初始化数据比较麻烦,不支持mysqld的--initialize-insecure选项 。所以不选用这种方式了 。第(2)和第(4)步可以参考使用 CLion 调试 redis。编译成功输出:击菜单栏【Build】=》【Install】进行安装 。安装成功输出:初始化数据目录:选择mysqld configuration  ,  以 Debug 模式运行 。成功运行输出:在 CLion 中,对sql_parse.cc中的mysql_execute_command()方法进行断点 。执行下面的语句连接上 mysql 服务 。在mysql-client中执行如下命令:然后在 CLion 中即可发现已经被断点拦截 , 且可以发现Statement class中的query_string字段和 我们上面输入的命令show databases是一样 。至此,已经完成了 CLion 调试 MySQL 环境的搭建 。对于mysqld ,可以通过设置debug系统变量在运行时更改DBUG设置。此变量具有全局值和会话值:该debug_options值是用 冒号( : )分隔 的字段的序列:值中的每个字段都包含一个强制性标志字符 。我们使用的标志字符如下所示:以root用户连接到 mysqld 。然后,在 mysql 中执行select语句 , 就可以在CLion console中观察到如下图所示输出 。5 , clion中如何调试让程序一步一步执行JetBrains家IDE通用调试方法:1. 打断点,在你想要停下的行的header位置点击一下鼠标左键,会出现一个红色的圆形断点图标2.点击工具栏的小虫子图标,以debug模式启动程序3.程序执行到断点位置时 , 会停在这一行4.按F8执行下一行,按F7进入函数执行 , 按F9恢复程序运行 。6,CLion不能调试是什么问题import java.io.BufferedReader;import java.io.InputStreamReader;public class test{public static void main(String[] args)throws Exception{int[] b=new int[200];int[] c=new int[200];int i, j;BufferedReader br=new BufferedReader(new InputStreamReader(System.in));String str=null;file->settings->Build,Execution,Deplyment中需要设置gdb,cmake , 编译器 。7,如何使用debug启动 Debug , 它是可用于测试和调试可执行文件的程序 。Debug [[drive:][path] filename [parameters]] 参数 [drive:][path] filename 指定要测试的可执行文件的位置和名称 。parameters 指定要测试的可执行文件所需要的任何命令行信息 。++ 说明 使用 Debug 命令但不指定要测试的文件 如果使用没有位置和文件名的 Debug 命令,然后键入所有的 Debug 命令以响应 Debug 提示符,连字符 (-) 。Debug 命令 以下是 Debug 命令列表: ? 显示 Debug 命令列表 。a 汇编 8086/8087/8088 记忆码 。c 比较内存的两个部分 。d 显示部分内存的内容 。e 从指定地址开始 , 将数据输入到内存 。f 使用指定值填充一段内存 。g 运行在内存中的可执行文件 。h 执行十六进制运算 。i 显示来自特定端口的 1 字节值 。l 将文件或磁盘扇区内容加载到内存 。m 复制内存块中的内容 /n 为 l 或 w 命令指定文件,或者指定正在测试的文件的参数 。o 向输出端口发送 1 个字节的值 。p 执行循环、重复的字符串指令、软件中断或子例程 。q 停止 Debug 会话 。r 显示或改变一个或多个寄存器 。s 在部分内存中搜索一个或多个字节值的模式 。t 执行一条指令,然后显示所有寄存器的内容、所有标志的状态和 Debug 下一步要执行的指令的解码形式 。u 反汇编字节并显示相应的原语句 。w 将被测试文件写入磁盘 。xa 分配扩展内存 。xd 释放扩展内存 。xm 映射扩展内存页 。xs 显示扩展内存的状态 。分隔命令参数 所有 Debug 命令都接受参数,除了 q 命令之外 。可以用逗号或空格分隔参数,但是只有在两个十六进制值之间才需要这些分隔符 。因此,以下命令等价: dcs:100 110 d cs:100 110 d,cs:100,110 指定有效地址项 Debug 命令中的 address 参数指定内存位置 。Address 是一个包含字母段记录的二位名称或一个四位字段地址加上一个偏移量 。可以忽略段寄存器或段地址 。a,g,l,t , u 和 w 命令的默认段是 CS 。所有其他命令的默认段是 DS 。所有数值均为十六进制格式 。有效地址如下: CS:0100 04BA:0100 在段名和偏移量之间要有冒号 。指定有效范围项 Debug 命令中的 range 参数指定了内存的范围 。可以为 range 选择两种格式:起始地址和结束地址,或者起始地址和长度范围(由 l 表示) 。例如,下面的两个语法都可以指定从 CS:100 开始的 16 字节范围: cs:100 10f cs:100 l 10 ++ Debug 子命令 选择 Debug 命令以获得详细信息 。Debug:A(汇编) Debug:C(比较) Debug(转储) Debug:E(键入) Debug:F(填充) Debug:G(转向) Debug:H(十六进制) Debug:I(输入) Debug:L(加载) Debug:M(移动) Debug:N(名称) Debug:O(输出) Debug:P(执行) Debug:Q(退出) Debug:r(寄存器) Debug:s(搜索) Debug:T(跟踪) Debug:U(反汇编) Debug:W(写入) Debug:XA(分配扩展内存) Debug:XD(取消分配扩展内存) Debug:XM(映射扩展内存页) Debug:XS(显示扩展内存状态)

    推荐阅读