You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
调试fed和havenask
在docker运行的fed如果需要远程调试,可按照如下步骤进行:
调试fed
1、fed开启debug模式启动
在fed的config目录,修改jvm.options文件,去掉这行注释
然后重新启动fed。
2、使用IntelliJ IDEA的Remote JVM Debug功能
点击Run->Edit Configurations
选择Remote JVM Debug:
在Host选择远程fed启动的ip,然后点Ok
然后点击Debug图标,或者在Run下拉菜单点击Debug 'debug_fed'即可开始调试。
更多IntelliJ IDEA调试的功能可以参看IDEA的相关文档。
调试Havenask
如何创建容器详见havenask项目,地址https://github.com/alibaba/havenask/wiki/快速开始-1.0.0-beta,这里需要注意的是需要选择dev镜像进行开发
要使用vsdoe在远程服务器上的dev镜像并进入容器中调试havenask,必须的插件有:SSH Remote、Docker、Dev Container以及C++ Extension Pack。
其中需要注意四个插件的安装位置,SSH Remote安装在本地机上,Docker和Dev Container安装在远端服务器中,C++ Extension Pack安装在容器中。
安装时可留意安装插件时的提示信息:
插件1: SSH Remote
此插件安装在本地机上,用于远程连接开发机进行远程开发,安装后即可连接到服务器。
插件2、3: Docker以及Dev Container
此插件在连接远程开发机后在远程开发机上安装,目的是管理容器以及进入容器,成功安装后,vscode左侧栏会新增一个,点进去可以看到目前远程开发机上拥有的镜像以及正在运行的容器,右击想要进入的容器,点击"Attach in New Window"即可在新窗口中进入容器。
插件4: C++ Extension Pack
此插件安装在容器中,是一款通用的C++开发插件,在容器中安装此插件后才能使用vscode的debug功能
如果在安装 C++ Extension Pack 后无法"go to definition"跳转到定义,需要进行如下操作:
打开settings,在搜索栏中搜索"intelli Sense Engine",默认为"disable",这里需要选择为"default"
点击左侧Remote Explorer栏目,之后点击New Remote通过SSH连接到远程开发机
进入开发机之后点击左侧Docker栏目,选择一个已经启动的容器,右击选择"Attach Visual Studio Code",即可进入容器开发的vscode开发页面
首先在容器中找到havenask工作目录(如果没有需要git clone下来)并使用vscode打开文件夹,在vscode中指定文件夹进行开发操作如下:
编译只需要在终端运行havenask工程目录下的./build.sh即可,终端打开方法如下:
编译时,需要带入调试信息,因此须修改build.sh第10行的bazel build命令,在--config=havenask后加入" -c opt --copt -g --strip=never "
另外需要注意第13行的安装目录,默认是当前文件夹的ha3_install目录,如果按默认设置后,需要注意使用github的示例命令运行时需要更改参数
关于调试方式,可以使用gdb,或者vscode的debugger,如果需要使用vscode的debugger,需要自己配置launch.json,操作如下:
debug的配置文件launch.json(attach模式)
之后即可在程序运行时,打好断点后attch进行debug:
Beta Was this translation helpful? Give feedback.
All reactions