envoy开发调试环境搭建( 三 )

上面的配置的意思是监听了8080,然后配置转发到 8000,并且配置了一个lua的httpfilter拦截器把流量转到了 宿主机的5000
等会我们就在lua的http拦截器那里打上断点,看看是怎么拦截的
tools/vscode/generate_debug_config.py //source/exe:envoy-static --args "-c envoy-demo.yaml"

envoy开发调试环境搭建

文章插图
image
在我电脑上执行需要约1个小时左右,取决于电脑配置
执行成功会生成调试的配置文件如下图:

envoy开发调试环境搭建

文章插图
image
在main.cc 和lua_filter.cc里面打上断点
按照我们上面的envoy-demo.yaml配置
我们需要在容器内起一个8000端口的服务
python -m SimpleHTTPServer
envoy开发调试环境搭建

文章插图
image
然后再宿主机内起一个5000端口的服务
envoy开发调试环境搭建

文章插图
然后再vscode按F5 调试envoy
首先进入main.cc的断点
envoy开发调试环境搭建

文章插图
启动成功 vscode右下角会提示:

envoy开发调试环境搭建

文章插图
image
点击OpenInBrower打开
请求到8888端口 envoy按照配置会转发到 本地的8000端口(python服务) 且会走lua的httpfilter代码,请求5000端口的服务
命中lua.cc的断点
envoy开发调试环境搭建

文章插图
查看5000端口的服务,确认从envoy发出的请求
envoy开发调试环境搭建

文章插图
新版本的envoy遇到的问题记录采用如上方式编译是成功的,代码跳转啥的也都是没问题,就是一F5调试就会出现

envoy开发调试环境搭建

文章插图
image
提了issue: https://github.com/envoyproxy/envoy/issues/22788
再issue下面有个兄弟给了一个方法,试了也不行,目前我可成功调试的是envoy 1.20.7版本,具体原因不解,有知道麻烦给教育下~!
envoy相关知识
关注公众号一起学习
envoy开发调试环境搭建

文章插图
【envoy开发调试环境搭建】

经验总结扩展阅读