Kubernetes与Serverless调试全解析
1. 无调试器下的代码调试困境
在没有调试器的情况下,代码调试是一件困难的事情。最佳的做法是在非Kubernetes环境和生产环境之外重现问题,但有些情况下,这并不现实。
2. 使用jdb进行调试
当无法在生产环境外重现问题时,就需要一个“合适”的调试器。由于是远程调试,这颇具挑战。借助 kubectl debug ,可以连接到容器并运行常规的命令行调试器。以Java开发者为例,可使用 jdb (Java调试器),它是Java的命令行调试接口,类似于 gdb 。
具体操作步骤如下:
1. 终止进程,然后使用以下命令重新启动并开启调试:
java "-agenlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005" -jar MyApplication.jar
引号内的内容主要是为了让进程准备好接受调试器连接。
2. 运行项目后,使用以下命令连接JDB(假设进程ID为666):
$ jdb -connect com.sun.jdi.ProcessAttach:pid=666
- 设置断点:
> s
超级会员免费看
订阅专栏 解锁全文
1032

被折叠的 条评论
为什么被折叠?



