mysqld --debug=d:t:i:O:n --user=mysql (源码调试)

--debug=d:t
--debug=d:f,main,subr1:F:L:t,20
--debug=d,input,output,files:n
--debug=d:t:i:O,\\mysqld.trace
--debug=d:t:i:O

--debug=d:t --debug=d:f,main,subr1:F:L:t,20 --debug=d,input,output,files:n --debug=d:t:i:O,\\mysqld.trace --debug=d:t:i:O

./mysqld  --debug=d:t:i:O:F:L:t:n --user=mysql  详细信息

./mysqld  --debug=d:t:i:O:n --user=mysql      函数调用框架

./mysqld   --debug=d:t:i:O:n:D,20 --user=mysql 延迟两秒

general: Command on socket (7) = 2 (Init DB)   日志中定位命令开始

Flag   Description

d   Enable output from DBUG_XXX macros for the current state. May be followed by a list of keywords, which enables output only for the DBUG macros with that keyword. An empty list

of keywords enables output for all macros.

In MySQL, common debug macro keywords to enable are enter, exit, error, warning, info, and loop.

D   Delay after each debugger output line. The argument is the delay, in tenths of seconds, subject to machine capabilities. For example, D,20 specifies a delay of two seconds.

f   Limit debugging, tracing, and profiling to the list of named functions. An empty list enables all functions. The appropriate d or t flags must still be given; this flag only

limits their actions if they are enabled.

F   Identify the source file name for each line of debug or trace output.

i   Identify the process with the PID or thread ID for each line of debug or trace output.

L   Identify the source file line number for each line of debug or trace output.

n   Print the current function nesting depth for each line of debug or trace output.

N   Number each line of debug output.

o   Redirect the debugger output stream to the specified file. The default output is stderr.

O   Like o, but the file is really flushed between each write. When needed, the file is closed and reopened between each write.

p   Limit debugger actions to specified processes. A process must be identified with the DBUG_PROCESS macro and match one in the list for debugger actions to occur.

P   Print the current process name for each line of debug or trace output.

r   When pushing a new state, do not inherit the previous state‘s function nesting level. Useful when the output is to start at the left margin.

S   Do function _sanity(_file_,_line_) at each debugged function until _sanity() returns something that differs from 0. (Mostly used with safemalloc to find memory leaks.)

t   Enable function call/exit trace lines. May be followed by a list (containing only one modifier) giving a numeric maximum trace level, beyond which no output occurs for either

debugging or tracing macros. The default is a compile time option

时间: 2024-12-24 22:54:48

mysqld --debug=d:t:i:O:n --user=mysql (源码调试)的相关文章

MySQL源码之mysqld启动

启动mysqld,并进入listen阶段 函数调用栈: mysqld_main(): my_init();初始化变量,锁,错误串 my_thread_global_init(): 初始化互斥锁,信号量,线程独享变量 load_defaults();查找my.cnf sys_var_init();初始化system variables init_common_variables:初始化mutex,status变量 init_signals:初始化信号量处理 init_server_componen

又是正版!Win下ffmpeg源码调试分析二(Step into ffmpeg from Opencv for bugs in debug mode with MSVC)

最近工作忙一直没时间写,但是看看网络上这方面的资源确实少,很多都是linux的(我更爱unix,哈哈),而且很多是直接引入上一篇文章的编译结果来做的.对于使用opencv但是又老是被ffmpeg库坑害的朋友们,可能又爱又恨,毕竟用它处理和分析视频是第一选择,不仅是因为俩者配合使用方便,而且ffmpeg几乎囊括了我所知道的所有解编码器,但是正是因为这个导致了一些bug很难定位,所以有必要考虑一下如何快速定位你的ffmpeg bug. sorry,废话多了.首先给个思路: 1.使opencv 的hi

Hbase 源码调试:Remote debug 模式

不愤不启,不悱不发:举一隅不以三隅反,则不复也. 解释:(教学生)不到他苦思冥想怎么也弄不明白的时候,不去开导他:不到他想说而又说不出来的时候,不去启发他.告诉他(四方形)的一个角,他不能由此推出另外三个角,就不再往下教他(新知识)了. 学习Hbase的开端,就是要了解它的架构,以及HMaster,HRegionServer 的一个启动流程,明白了Hbase内部的基本流程,才能从大局上把握住.明白了Hbase的组成部分,才能在集群出现问题的时候,快速定位到模块,再从模块定位到具体的错误. 下面记

设置Eclipse可以Debug模式调试JDK源码,并显示局部变量的1

最近突然萌发了研究JDK源码的想法,所以就想到了在自己常用的Eclipse上可以调试JDK源码. 整个设置过程也很简单: 首先你要安装好JDK(我的JDK安装路径根目录是D:\Java\jdk-8u92-windows-x64),JDK安装路径里有个"src.zip"就是JDK的源码文件压缩包: 设置好环境变量的JAVA_HOME变量和PATH变量(JAVA_HOME变量值也是D:\Java\jdk-8u92-windows-x64). 然后打开Eclipse设置可以Debug模式调试

tornado框架源码分析---Application类之debug参数

先贴上Application这个类的源码. class Application(httputil.HTTPServerConnectionDelegate): """A collection of request handlers that make up a web application. Instances of this class are callable and can be passed directly to HTTPServer to serve the a

设置Eclipse可以Debug模式调试JDK源码,并显示局部变量的值

最近突然萌发了研究JDK源码的想法,所以就想到了在自己常用的Eclipse上可以调试JDK源码. 整个设置过程也很简单: 首先你要安装好JDK(我的JDK安装路径根目录是D:\Java\jdk-8u92-windows-x64),JDK安装路径里有个"src.zip"就是JDK的源码文件压缩包: 设置好环境变量的JAVA_HOME变量和PATH变量(JAVA_HOME变量值也是D:\Java\jdk-8u92-windows-x64). 然后打开Eclipse设置可以Debug模式调试

Eclipse开发环境debug模式调试断点从jar跳到源码

Eclipse开发环境debug模式调试断点从jar跳到源码 说明:本案例使用jsch-0.1.54.jar和源码做test,项目分成两个,一个是jsch的源码,另一个是测试案例 一.下载JSch.的jar包和源码  http://www.jcraft.com/jsch/ 二.新建两个工程分别是JSch.TestDemo,JSch中引入jsch-0.1.54.jar的源码,项目结构如下图 SftpConnect.java package com.kevin.test; import com.jc

重新编译jdk源码,启用debug信息

我有一个不知道是好还是不好的习惯,搞不懂的一些玩意儿,喜欢调试然后单步执行看这玩意儿到底是怎么运行的. 今天看到正则表达式的时候,appendReplacement()这个方法怎么也看不明白它是怎么工作的,于是想调试源码单步执行,然后watch几个关键的变量看看. 刚开始的时候,eclipse里调试模,单步,发现没有办法进入方法内. 用google百度了一下,发现是JRE配置的问题. 使用jre是不可以的,需要使用jdk的环境.(之前真的没有注意到这一点) 于是window->Preferenc

eclipse如何debug调试jdk源码

java是一门开源的程序设计语言,喜欢研究源码的java开发者总会忍不住debug一下jdk源码.虽然官方的jdk自带了源码包src.zip,然而在debug时查看变量却十分麻烦.例如调试HashMap的 public V put(K key, V value) 方法并查看key的值时会提示: 可以看到不能显示变量的值了,原因在于oracle提供的jre中rt.jar不带debug信息:orcale在编译src时使用了 javac -g:none,意思是不带任何调试信息,这样可以减小rt.jar