| @@ -0,0 +1,49 @@ | |||||
| # vsCode 开发环境搭建指南 | |||||
| ## 安装vsCode扩展 | |||||
| >### 安装docker插件 | |||||
| >在vsCode扩展中心搜索docker,安装docker扩展,安装完成后,会在左侧显示docker的图标,切换至docker,会看到当前创建的docker 的 container 以及 container 下的image列表。 | |||||
| > | |||||
| > | |||||
| > | |||||
| >选择一个Image,右键选择 Attach Vidual Studio Code,(如果镜像不在运行状态,右键 start) | |||||
| > | |||||
| > | |||||
| > | |||||
| >### 安装C/C++插件 | |||||
| > | |||||
| >在vsCode中使用断点进行调试,需要在链接到docker镜像之后重新安装C/C++扩展。 | |||||
| > | |||||
| > | |||||
| ## vsCode进行断点调试 | |||||
| > | |||||
| >### 配置lanuch.json。 | |||||
| > | |||||
| >点击菜单栏中的【运行】|【添加配置...】 | |||||
| > | |||||
| > | |||||
| > | |||||
| >弹出下列选择窗口,选择【C++(GDB/LLDB)】,vscode会自动打开lanuch.json: | |||||
| > | |||||
| > | |||||
| > | |||||
| >在这里,只需要配置两个参数,一是将【program】参数配置成可调式文件的全路径。第二个是将【name】参数也更改为自己容易区分的名称。 | |||||
| >如下图,配置了ut_libgraph的调试信息: | |||||
| >**注:这里的workspaceFolder(当前打开文件夹的目录)为/code/Turing/graphEngine** | |||||
| > | |||||
| > | |||||
| > | |||||
| >vsCode可以添加多个调试文件,点击添加配置,会弹出如下选项列表,选择【C/C++:(gdb)启动】: | |||||
| > | |||||
| > | |||||
| > | |||||
| >依然是更改【program】与【name】两个参数。根据上述方式将需要调试的可执行文件添加到配置文件中。 | |||||
| >完成配置后,在vsCode最左侧,切换到运行和调试,如下所示选择一个自己需要调试的文件进行调试。 | |||||
| > | |||||
| > | |||||
| > | |||||
| >### vsCode 调试示例 | |||||
| >根据调试需要在对应源代码中添加断点,最终调试效果如下: | |||||
| > | |||||
| > | |||||
| @@ -21,7 +21,7 @@ MOUNT_PROJECT_HOME=$(cd $PROJECT_HOME || return; pwd) | |||||
| DOCKER_BUILD_ENV_NAME=${MOUNT_PROJECT_HOME#*/} | DOCKER_BUILD_ENV_NAME=${MOUNT_PROJECT_HOME#*/} | ||||
| DOCKER_BUILD_ENV_NAME=${DOCKER_BUILD_ENV_NAME//\//\_} | DOCKER_BUILD_ENV_NAME=${DOCKER_BUILD_ENV_NAME//\//\_} | ||||
| DOCKER_IMAGE_TAG=ge_build_env.1.0.6 | |||||
| DOCKER_IMAGE_TAG=ge_build_env.1.0.7 | |||||
| DOCKER_IAMGE_NAME=joycode2art/turing | DOCKER_IAMGE_NAME=joycode2art/turing | ||||
| DOCKER_FULL_IMAGE_NAME=${DOCKER_IAMGE_NAME}:${DOCKER_IMAGE_TAG} | DOCKER_FULL_IMAGE_NAME=${DOCKER_IAMGE_NAME}:${DOCKER_IMAGE_TAG} | ||||
| @@ -61,7 +61,7 @@ function enter_docker_env(){ | |||||
| if test -z "$(docker images |grep ${DOCKER_IAMGE_NAME} | grep ${DOCKER_IMAGE_TAG})"; then | if test -z "$(docker images |grep ${DOCKER_IAMGE_NAME} | grep ${DOCKER_IMAGE_TAG})"; then | ||||
| echo "please run 'ge env --pull' to download images first!" | echo "please run 'ge env --pull' to download images first!" | ||||
| elif test -z "$(docker ps -a |grep ${DOCKER_BUILD_ENV_NAME})"; then | elif test -z "$(docker ps -a |grep ${DOCKER_BUILD_ENV_NAME})"; then | ||||
| $docker_cmd run -it -v ${MOUNT_PROJECT_HOME}:/code/Turing/graphEngine --workdir ${docker_work_dir} --name ${DOCKER_BUILD_ENV_NAME} ${DOCKER_FULL_IMAGE_NAME} ${docker_bash_dir} | |||||
| $docker_cmd run --privileged -it -v ${MOUNT_PROJECT_HOME}:/code/Turing/graphEngine --workdir ${docker_work_dir} --name ${DOCKER_BUILD_ENV_NAME} ${DOCKER_FULL_IMAGE_NAME} ${docker_bash_dir} | |||||
| elif test -z "$(docker ps |grep ${DOCKER_BUILD_ENV_NAME})"; then | elif test -z "$(docker ps |grep ${DOCKER_BUILD_ENV_NAME})"; then | ||||
| $docker_cmd start ${DOCKER_BUILD_ENV_NAME} | $docker_cmd start ${DOCKER_BUILD_ENV_NAME} | ||||
| $docker_cmd exec -w ${docker_work_dir} -it ${DOCKER_BUILD_ENV_NAME} ${docker_bash_dir} | $docker_cmd exec -w ${docker_work_dir} -it ${DOCKER_BUILD_ENV_NAME} ${docker_bash_dir} | ||||
| @@ -17,6 +17,7 @@ | |||||
| GE_BASH_HOME=$(dirname "$0") | GE_BASH_HOME=$(dirname "$0") | ||||
| export PROJECT_HOME=${PROJECT_HOME:-${GE_BASH_HOME}/../} | export PROJECT_HOME=${PROJECT_HOME:-${GE_BASH_HOME}/../} | ||||
| PROJECT_HOME=$(cd $PROJECT_HOME || return; pwd) | PROJECT_HOME=$(cd $PROJECT_HOME || return; pwd) | ||||
| export ASCEND_CUSTOM_PATH=${PROJECT_HOME}/deps/lib | |||||
| function help(){ | function help(){ | ||||
| cat <<-EOF | cat <<-EOF | ||||
| @@ -42,9 +42,10 @@ $ ./ge.sh env | |||||
| ``` | ``` | ||||
| 3.下载和安装构建所依赖的外部库 | 3.下载和安装构建所依赖的外部库 | ||||
| ```sh | |||||
| $ ge update | |||||
| ``` | |||||
| ```sh | |||||
| $ ge update | |||||
| ``` | |||||
| (注:进入容器后,`ge`命令已经自动注册进系统,因此容器内不需要写脚本全称) | (注:进入容器后,`ge`命令已经自动注册进系统,因此容器内不需要写脚本全称) | ||||
| 4.执行测试,默认执行单元测试用例,`ge test`会自动触发构建 | 4.执行测试,默认执行单元测试用例,`ge test`会自动触发构建 | ||||
| @@ -38,7 +38,7 @@ function extract_deps_so_community() | |||||
| { | { | ||||
| echo "begin to extract .run file ........." | echo "begin to extract .run file ........." | ||||
| chmod +x ./${DRIVER_RUN_NAME_C} | chmod +x ./${DRIVER_RUN_NAME_C} | ||||
| chmod +X ./${PACKAGE_NAME_C} | |||||
| chmod +x ./${PACKAGE_NAME_C} | |||||
| [ -n "${DEP_TMP_DIR}" ] && rm -rf "${DEP_TMP_DIR}" | [ -n "${DEP_TMP_DIR}" ] && rm -rf "${DEP_TMP_DIR}" | ||||
| ./${DRIVER_RUN_NAME_C} --noexec --extract=${DEP_TMP_DIR}/driver | ./${DRIVER_RUN_NAME_C} --noexec --extract=${DEP_TMP_DIR}/driver | ||||
| ./${PACKAGE_NAME_C} --noexec --extract=${DEP_TMP_DIR}/Packages_tmp | ./${PACKAGE_NAME_C} --noexec --extract=${DEP_TMP_DIR}/Packages_tmp | ||||