操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    由于我最近在研究 envoy 這個(gè)項(xiàng)目,這是個(gè)cpp的項(xiàng)目,對(duì)于我這種cpp新人來(lái)說(shuō)還是比較有壓力的,感覺(jué)處處都是坑,開(kāi)個(gè)引導(dǎo)文章記錄一下。

    如果要研究 envoy 項(xiàng)目源碼,那肯定是需要代碼跳轉(zhuǎn)的,但是如果用 clion 打開(kāi),那么你會(huì)發(fā)現(xiàn) envoy 是用bazel 構(gòu)建的,沒(méi)有.txt無(wú)法跳轉(zhuǎn),bazel- 這個(gè)工具也已經(jīng)幾年都沒(méi)迭代了,根本用不了。所以按照官方推薦的使用 來(lái)進(jìn)行構(gòu)建開(kāi)發(fā)。

    在 envoy 這個(gè)項(xiàng)目里面,由于運(yùn)行環(huán)境是基于的環(huán)境跑的,所以提供了 這種模式給我們開(kāi)發(fā)者進(jìn)行開(kāi)發(fā)調(diào)試

    看了一下 envoy 的開(kāi)發(fā)文檔,感覺(jué)貌似使用起來(lái)是很簡(jiǎn)單的,但是有些地方踩坑也讓我浪費(fèi)了不少時(shí)間。

    開(kāi)發(fā)環(huán)境的構(gòu)建創(chuàng)建 dev 環(huán)境

    首先,我們需要在我們的機(jī)器上安裝好 ,然后用打開(kāi)我們的envoy項(xiàng)目,打開(kāi) envoy/./.json 文件,這個(gè)時(shí)候 會(huì)彈出如下提示:

    然后我們點(diǎn)擊 in 即可加載構(gòu)建 開(kāi)發(fā)環(huán)境。但是有些小伙伴說(shuō),不小心把這個(gè)提示關(guān)了,怎么手動(dòng)打開(kāi)呢?

    在mac里我們可以按下:+shift+p,然后輸入 :

    生成相應(yīng)的依賴文件

    然后進(jìn)入到容器內(nèi)部之后,需要 ,也就是運(yùn)行 tools//.sh腳本,這個(gè)腳本會(huì)幫我們生成代碼完成的所有依賴項(xiàng),例如 生成的代碼、外部依賴項(xiàng)。

    但是直接運(yùn)行的話,會(huì)報(bào)錯(cuò):

    然后我去看官方文檔 - ,文檔里面和我說(shuō)一般需要把.json 的里面的 設(shè)置為 root, 然后我又重新構(gòu)建了幾次,都是直接卡死,原因不明。

    然后我跑到宿主機(jī)給 這個(gè)用戶加權(quán)限,結(jié)果是找不到這個(gè)用戶。后面我幡然醒悟,這個(gè)權(quán)限命令應(yīng)該在容器內(nèi)部執(zhí)行才可以:

    #?這個(gè)命令需要在容器內(nèi)部執(zhí)行
    sudo?chown?-R?vscode?/workspaces

    然后再運(yùn)行 tools//.sh腳本vs 調(diào)試 找不到dll,ok了vs 調(diào)試 找不到dll,沒(méi)有報(bào)錯(cuò)。然后檢查生成的 .json文件也沒(méi)有問(wèn)題。

    我們?cè)贆z查一下代碼可以正常跳轉(zhuǎn),并且沒(méi)有報(bào)錯(cuò)了。

    開(kāi)發(fā)環(huán)境進(jìn)行envoy調(diào)試

    當(dāng)然,除了讓我們的開(kāi)發(fā)環(huán)境的代碼能夠跳轉(zhuǎn)其實(shí)還不夠,最好是可以進(jìn)行代碼的調(diào)試,下面我們就看看怎么調(diào)試 envoy。

    配置一個(gè)demo yaml

    在代碼的 下面其實(shí)有很多 yaml 模板,可以隨便拿一個(gè)出來(lái)放到envoy根目錄下面,我這里也給一個(gè) yaml 例子:

    admin:
    ??access_log_path:?/tmp/admin_access.log
    ??address:
    ????socket_address:
    ??????protocol:?TCP
    ??????address:?0.0.0.0
    ??????port_value:?9901
    static_resources:
    ??listeners:
    ??-?name:?listener_0
    ????address:
    ??????socket_address:
    ????????protocol:?TCP
    ????????address:?0.0.0.0
    ????????port_value:?10001
    ????filter_chains:
    ????-?filters:
    ??????-?name:?envoy.filters.network.http_connection_manager
    ????????typed_config:
    ??????????"@type":?type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
    ??????????scheme_header_transformation:
    ????????????scheme_to_overwrite:?https
    ??????????stat_prefix:?ingress_http
    ??????????route_config:
    ????????????name:?local_route
    ????????????virtual_hosts:
    ????????????-?name:?local_service
    ??????????????domains:?["*"]
    ??????????????routes:
    ??????????????-?match:
    ??????????????????prefix:?"/"
    ????????????????route:
    ??????????????????host_rewrite_literal:?www.envoyproxy.io
    ??????????????????cluster:?service_envoyproxy_io
    ??????????http_filters:
    ??????????-?name:?envoy.filters.http.router
    ??clusters:
    ??-?name:?service_envoyproxy_io
    ????connect_timeout:?30s
    ????type:?LOGICAL_DNS
    ????#?Comment?out?the?following?line?to?test?on?v6?networks
    ????dns_lookup_family:?V4_ONLY
    ????lb_policy:?ROUND_ROBIN
    ????load_assignment:
    ??????cluster_name:?service_envoyproxy_io
    ??????endpoints:
    ??????-?lb_endpoints:
    ????????-?endpoint:
    ????????????address:
    ??????????????socket_address:
    ????????????????address:?www.envoyproxy.io
    ????????????????port_value:?443
    ????transport_socket:
    ??????name:?envoy.transport_sockets.tls
    ??????typed_config:
    ????????"@type":?type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext
    ????????sni:?www.envoyproxy.io

    生成 調(diào)試文件

    在根目錄下運(yùn)行下面命令:

    tools/vscode/generate_debug_config.py?//source/exe:envoy-static?--args?"-c?envoy.yaml"

    上面 --args 參數(shù)里面填的就是我們上面的 yaml 文件,這個(gè)編譯等待的過(guò)程是十分漫長(zhǎng)的,我 8C16G 的機(jī)器差不多花了我1個(gè)小時(shí)才弄好。

    運(yùn)行好之后,可以看到幫我們生成好了 .json 文件:

    調(diào)試

    然后我們按 F5 發(fā)現(xiàn)可以進(jìn)入到我們的 mian 函數(shù)的斷點(diǎn)中,沒(méi)有什么問(wèn)題:

    到此為止,我們的 envoy 開(kāi)發(fā)調(diào)試為一體的集成環(huán)境就打造好了,小伙伴們可以快樂(lè)的閱讀源碼了。

    原文鏈接:

網(wǎng)站首頁(yè)   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有