opengauss/opengauss-dev本镜像提供openGauss的调试版本,专为开发者设计。源代码及第三方二进制文件位于/home/opengauss目录,编译时已默认配置-O0 -g编译标志和--enable-debug选项,便于开发者进行代码调试、功能开发及快速验证。
-O0 -g和--enable-debug/home/opengaussgdb、gstack等调试工具,需配合容器特权模式使用bashdocker pull opengauss/opengauss-dev:tagname
说明:将
tagname替换为具体版本标签
需以特权模式运行容器,启用必要的调试功能:
bashdocker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined --security-opt apparmor=unconfined --privileged -it opengauss/opengauss-dev:tagname
进入容器后,执行以下命令启用ptrace:
bashsudo bash -c "echo 0 > /proc/sys/kernel/yama/ptrace_scope"
bashps -ef | grep gaussdb
示例输出:
opengau+ 201 1 4 15:51 ? 00:00:02 /home/opengauss/openGauss/install/bin/gaussdb -D /home/opengauss/openGauss/data opengau+ 315 244 0 15:52 pts/0 00:00:00 grep --color=auto gaussdb
bashgstack 201 # 201为上述获取的gaussdb进程PID
示例输出:
Thread 36 (Thread 0xffff31f5eee0 (LWP 240) "undorecycler"): #0 0x0000ffff976ec4c8 in poll () from /usr/lib64/libc.so.6 #1 0x0000000000d53abc in WaitLatchOrSocket (latch=0xffff7bb52d30, wakeEvents=25, sock=-1, timeout=2250) at pg_latch.cpp:309 ......
bashgdb /home/opengauss/openGauss/install/bin/gaussdb 201 # 201为进程PID
为获得更好的调试体验,建议在调试开始时禁用SIGUSR1和SIGUSR2信号:
gdb(gdb) handle SIGUSR1 noprint nostop pass Signal Stop Print Pass to program Description SIGUSR1 No No Yes User defined signal 1 (gdb) handle SIGUSR2 noprint nostop pass Signal Stop Print Pass to program Description SIGUSR2 No No Yes User defined signal 2

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务