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端口的服務
【envoy開發調試環境搭建】命中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開發調試環境搭建

文章插圖

推薦閱讀