diff --git a/scripts/debug.md b/scripts/debug.md new file mode 100644 index 00000000..cc4bd13d --- /dev/null +++ b/scripts/debug.md @@ -0,0 +1,49 @@ +# vsCode 开发环境搭建指南 +## 安装vsCode扩展 + +>### 安装docker插件 +>在vsCode扩展中心搜索docker,安装docker扩展,安装完成后,会在左侧显示docker的图标,切换至docker,会看到当前创建的docker 的 container 以及 container 下的image列表。 +> +>![docker_image_list](images/docker_image_list.png) +> +>选择一个Image,右键选择 Attach Vidual Studio Code,(如果镜像不在运行状态,右键 start) +> +>![add_vscode_schema](images/add_vscode.png) +> +>### 安装C/C++插件 +> +>在vsCode中使用断点进行调试,需要在链接到docker镜像之后重新安装C/C++扩展。 +> +>![C_C++_install](images/C_C++_install.png) + +## vsCode进行断点调试 +> +>### 配置lanuch.json。 +> +>点击菜单栏中的【运行】|【添加配置...】 +> +>![first_add_config](images/first_add_config.png) +> +>弹出下列选择窗口,选择【C++(GDB/LLDB)】,vscode会自动打开lanuch.json: +> +>![C++_select](images/C++_select.png) +> +>在这里,只需要配置两个参数,一是将【program】参数配置成可调式文件的全路径。第二个是将【name】参数也更改为自己容易区分的名称。 +>如下图,配置了ut_libgraph的调试信息: +>**注:这里的workspaceFolder(当前打开文件夹的目录)为/code/Turing/graphEngine** +> +>![modify_json](images/modify_json.png) +> +>vsCode可以添加多个调试文件,点击添加配置,会弹出如下选项列表,选择【C/C++:(gdb)启动】: +> +>![add_debug_config](images/add_config.png) +> +>依然是更改【program】与【name】两个参数。根据上述方式将需要调试的可执行文件添加到配置文件中。 +>完成配置后,在vsCode最左侧,切换到运行和调试,如下所示选择一个自己需要调试的文件进行调试。 +> +>![modify_json_complete](images/modify_json_complete.png) +> +>### vsCode 调试示例 +>根据调试需要在对应源代码中添加断点,最终调试效果如下: +> +>![debug](images/debug.png) \ No newline at end of file diff --git a/scripts/env/ge_env.sh b/scripts/env/ge_env.sh index 18c6aa5d..ed52f2d8 100755 --- a/scripts/env/ge_env.sh +++ b/scripts/env/ge_env.sh @@ -21,7 +21,7 @@ MOUNT_PROJECT_HOME=$(cd $PROJECT_HOME || return; pwd) DOCKER_BUILD_ENV_NAME=${MOUNT_PROJECT_HOME#*/} 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_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 echo "please run 'ge env --pull' to download images first!" 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 $docker_cmd start ${DOCKER_BUILD_ENV_NAME} $docker_cmd exec -w ${docker_work_dir} -it ${DOCKER_BUILD_ENV_NAME} ${docker_bash_dir} diff --git a/scripts/ge.sh b/scripts/ge.sh index 977d7089..e0e13358 100755 --- a/scripts/ge.sh +++ b/scripts/ge.sh @@ -17,6 +17,7 @@ GE_BASH_HOME=$(dirname "$0") export PROJECT_HOME=${PROJECT_HOME:-${GE_BASH_HOME}/../} PROJECT_HOME=$(cd $PROJECT_HOME || return; pwd) +export ASCEND_CUSTOM_PATH=${PROJECT_HOME}/deps/lib function help(){ cat <<-EOF diff --git a/scripts/images/C++_select.png b/scripts/images/C++_select.png new file mode 100644 index 00000000..04ca1b01 Binary files /dev/null and b/scripts/images/C++_select.png differ diff --git a/scripts/images/C_C++_install.png b/scripts/images/C_C++_install.png new file mode 100644 index 00000000..e3ea5a86 Binary files /dev/null and b/scripts/images/C_C++_install.png differ diff --git a/scripts/images/add_config.png b/scripts/images/add_config.png new file mode 100644 index 00000000..c24b23f4 Binary files /dev/null and b/scripts/images/add_config.png differ diff --git a/scripts/images/add_vscode.png b/scripts/images/add_vscode.png new file mode 100644 index 00000000..b2c49fd7 Binary files /dev/null and b/scripts/images/add_vscode.png differ diff --git a/scripts/images/debug.png b/scripts/images/debug.png new file mode 100644 index 00000000..ec1ea594 Binary files /dev/null and b/scripts/images/debug.png differ diff --git a/scripts/images/docker_image_list.png b/scripts/images/docker_image_list.png new file mode 100644 index 00000000..4015fb0b Binary files /dev/null and b/scripts/images/docker_image_list.png differ diff --git a/scripts/images/first_add_config.png b/scripts/images/first_add_config.png new file mode 100644 index 00000000..590c67d9 Binary files /dev/null and b/scripts/images/first_add_config.png differ diff --git a/scripts/images/modify_json.png b/scripts/images/modify_json.png new file mode 100644 index 00000000..292f3948 Binary files /dev/null and b/scripts/images/modify_json.png differ diff --git a/scripts/images/modify_json_complete.png b/scripts/images/modify_json_complete.png new file mode 100644 index 00000000..e5dfa6ea Binary files /dev/null and b/scripts/images/modify_json_complete.png differ diff --git a/scripts/readme.md b/scripts/readme.md index 64805225..e7bb7901 100755 --- a/scripts/readme.md +++ b/scripts/readme.md @@ -42,9 +42,10 @@ $ ./ge.sh env ``` 3.下载和安装构建所依赖的外部库 - ```sh - $ ge update - ``` + +```sh +$ ge update +``` (注:进入容器后,`ge`命令已经自动注册进系统,因此容器内不需要写脚本全称) 4.执行测试,默认执行单元测试用例,`ge test`会自动触发构建 diff --git a/scripts/update/ge_update.sh b/scripts/update/ge_update.sh index d6bcd043..57266d06 100755 --- a/scripts/update/ge_update.sh +++ b/scripts/update/ge_update.sh @@ -38,7 +38,7 @@ function extract_deps_so_community() { echo "begin to extract .run file ........." 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}" ./${DRIVER_RUN_NAME_C} --noexec --extract=${DEP_TMP_DIR}/driver ./${PACKAGE_NAME_C} --noexec --extract=${DEP_TMP_DIR}/Packages_tmp