如何debug oceanbase呢

目前想使用CLion这样的主流工具进行对ob进行debug,包括代码打断点那些的,但是琢磨半天也没办法,有大佬知道怎么搞嘛

1、你可以参考一下这个
https://blog.csdn.net/sjxgghg/article/details/105395864
2、你可以把部分代码截图 具体发出来 分析一下原因

用clion的比较少。很多都是用vscode(免费),vscode有远程开发模式,通常在服务器端启动一个observer进程,使用vscode远程开发,打断点进行调试。
如果clion有这种模式,应该是类似的。
个人习惯直接在服务端直接使用GDB进行调试。

开发逻辑简单的功能,推荐直接通过在代码里打 warning 日志调试,在日志里可以一次性把你想打印的所有变量全都打出来,然后在日志里 grep 你写的调试内容里的关键字,再通过阅读日志分析问题。

这是最简单高效的方式,也是我个人用的最多的调试方式。你会喜欢上这种调试方式的,哈哈~

如果遇到逻辑比较复杂的代码,推荐在测试机上用 gdb 调试:

  1. 在 observer 进程所在测试机上 ps xf,找到 observer 的 pid。
[xiaofeng.lby@OceanBase192087.et2sqa /home/xiaofeng.lby]
$ps xf
   PID TTY      STAT   TIME COMMAND
239848 ?        S      0:00 sshd: xiaofeng.lby@pts/2
239849 pts/2    Ss     0:00  \_ -bash
239922 pts/2    R+     0:00      \_ ps xf
209651 ?        Ssl   28:29 /home/xiaofeng.lby/ob1.proxy0/bin/obproxy -p 22603 -n ob1.xiaofeng.lby -e -o obproxy_config_server_url=http://10.244.4.23:8080/diamond/cgi/a.py?key=ob
207671 ?        Ssl   99:08 /home/xiaofeng.lby/ob1.obs0/bin/observer -P 22600 -p 22601 -z zone1 -n ob1.xiaofeng.lby -c 1 -d /home/xiaofeng.lby/ob1.obs0/store -l INFO -o memory_li
  1. gdb attach pid
[xiaofeng.lby@OceanBase192087.et2sqa /home/xiaofeng.lby]
$gdb attach 207671

0x0000003d19eab91d in nanosleep () from /lib64/libc.so.6
(gdb) b sql/resolver/ddl/ob_ddl_resolver.cpp:3370
(gdb) c
Continuing.

用 gdb 进行单步调试非常慢,效率极低,尽量少用单步调试,多用断点。