IDEA-DeBug

01_Debug简介和意义
  • 什么是程序DeBug?

    • Debug,是程序开发人员必会的一项调试程序的技能。

    • 企业中程序开发和程序调试的比例为1:1.5,可以说如果你不会调试程序,你就没有办法从事编程工作。

  • Debug能帮助我们做什么?

    1. 追踪代码的运行流程。
    2. 程序运行异常定位。
    3. 线上问题追踪。
  • Debug对于程序学习者的意义

    1. 通过调试能够更好的查看程序的执行流程。
    2. 复杂的程序逻辑,通过老师的口述讲解,很难理解清楚,这个时候借助调试能够很好的帮助同学们理解程序。
    3. 定位问题,提高自我解决问题的能力。
02_IDEA中的Debug步骤
  • 设置断点(F9)

  • 调试程序(8个按钮)

    | 按钮                                                         | 说明                                                         || ------------------------------------------------------------ | ------------------------------------------------------------ ||                           | (Alt + F10):如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行 || [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yhPI9jQg-1609685242255)(images\2019-09-28_164022.jpg)]                            | (F8):步过,一行一行地往下走,如果这一行上有方法不会进入方法。 || [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fw5Ogdmo-1609685242258)(images/2019-09-28_162345.jpg?lastModify=1569659273?lastModify=1569659273)] | (F7):步入。如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法。 || [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zPFdqHll-1609685242263)(images\2019-09-28_164200.jpg)]                            | (Alt + Shift + F7):强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。 || [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oZuyjkSD-1609685242264)(images\2019-09-28_164215.jpg)]                            | (Shift + F8):步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。 || [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bON76LBH-1609685242265)(images\2019-09-28_164428.jpg)]                            | 回退断点。                                                   || [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Q9tqkUcA-1609685242266)(images\2019-09-28_164418.jpg)]                            | (Alt + F9):运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。 || [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-19Dljogg-1609685242267)(images\2019-09-28_164437.jpg)]                            | (Alt + F8):计算表达式。                                     |

  • 观察变量

    • 查看变量有三种方式:
      • 程序区查看变量
      • Debugger的Variables中查看变量
      • 鼠标悬停到变量名上会弹出当前变量的值

在这里插入图片描述

  • 查看输出
03_跳转到当前代码执行的行
  • 跳转到当前代码执行的行(Alt + F10)在这里插入图片描述

  • 作用

    • 使程序窗口切换到当前正在运行的程序处。
04_步过调试的使用
  • 步过调试

    • 步过调试按钮(F8)
      在这里插入图片描述
  • 作用

    • 步过,一行一行地往下走,如果这一行上有方法不会进入方法。
    • 常用于调试过程中不想进入调用的方法体的情况。
05_步入调试的使用
  • 步入调试

    • 步过调试按钮(F7)
      在这里插入图片描述
  • 作用

    • 步入,一行一行地往下走,如果这一行上有方法,则进入方法内部。

    • 一般用于进入自定义方法内,不会进入官方类库的方法。

06_强制步入调试的使用
  • 强制步入调试

    • 强制步入调试按钮(Alt + Shift + F7)
      在这里插入图片描述
  • 作用

    • 进入官方类库方法

    • 帮助我们学习和查看JDK源码

07_步出调试的使用
  • 步出调试

    • 步出调试按钮(Shift + F8)
      在这里插入图片描述
  • 作用

    • 从方法内退出到方法调用处。
    • 调试的时候,有时候会跳入到自己不想查看的方法体,这个时候使用步出。
08_回退断点调试的使用
  • 回退断点

    • 回退断点按钮
      在这里插入图片描述
  • 作用

    • 回退到当前方法的调用处。

    • 当想重新查看该方法体的执行过程时,不用重新启动Debug,可以使用回退断点方式。

09_运行到光标处
  • 运行到光标处
    • 运行光标处按钮 (F9)
      在这里插入图片描述

    • 作用

      • 使程序运行到光标处,而无需设置断点。
10_计算表达式
  • 计算表达式

    • 计算表达式按钮(Alt + F8)
      在这里插入图片描述

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mcb8MMRO-1609685242277)(images\2019-10-03_182159.jpg)]

  • 作用

    • 设置变量,在计算表达式的框里,可以改变变量的值,这样有时候就能很方便我们去调试各种值的情况了。
11_条件断点
  • 条件断点

    • 右键单击断点处,可以设置进入断点的条件

    在这里插入图片描述

  • 作用

    • 通过设置断点条件,在满足条件时,才停在断点处,否则直接运行。
12_多线程调试
  • 步骤

    • 多线程调试,需要调整断点挂起级别为Thread

    在这里插入图片描述

1609685242278)]

  • 作用

    • 通过设置断点条件,在满足条件时,才停在断点处,否则直接运行。
12_多线程调试
  • 步骤
    • 多线程调试,需要调整断点挂起级别为Thread

    • Frame中选择线程进行调试

<think> 我们正在处理的问题是:IDEA启动项目时卡在'Executing 'hrgen:code:zdjx-cosmic-debug [:zdjx-cosmic-debug:DebugApplication.main()] Gradle: Building:':zdjx-cosmic-debug:DebugApplication.main()'。 根据提供的引用,我们可以参考以下几点: 1. 引用[1]和[5]提到了与IDEA连接服务器或执行命令相关的错误,其中引用[5]特别指出IDEA版本可能与服务器环境不匹配,建议降低IDEA版本。 2. 引用[2]是关于编译Groovy项目时出现的类找不到的错误,可能与依赖或构建工具配置有关。 3. 引用[3]和[4]是关于Ubuntu系统中执行APT更新脚本时出现的错误,与appstreamcli相关。 但是,用户当前的问题是在启动项目时卡在Gradle构建步骤。这通常意味着Gradle构建过程出现了问题,可能的原因包括: - 网络问题导致依赖下载缓慢或失败 - Gradle配置错误 - 项目依赖冲突或缺失 - Gradle版本与项目不兼容 - IDEA与Gradle的兼容性问题 结合引用[5]中提到IDEA版本过高可能导致问题,我们可以尝试降低IDEA版本(如使用2023.3.4而不是2024.2.4)。另外,也可以尝试其他解决Gradle构建问题的通用方法。 因此,我们给出以下解决步骤: 1. **检查IDEA版本兼容性**: 根据引用[5]的建议,如果使用的是较高版本的IDEA(尤其是2024版本),尝试降级到2023.3.4版本。这是因为新版本可能存在与项目或Gradle的兼容性问题。 2. **检查Gradle配置**: - 确保项目中的`gradle-wrapper.properties`文件指定的Gradle版本与项目兼容。 - 尝试手动下载并配置Gradle:在IDEA设置中,选择“Build, Execution, Deployment” > “Build Tools” > “Gradle”,将Gradle设置为“Use local gradle distribution”,并指定一个本地已下载的合适版本。 3. **清理Gradle缓存**: 有时候Gradle缓存会导致问题,可以尝试清理缓存: - 在终端中进入项目目录,执行命令:`./gradlew clean` 或 `gradle clean`(根据系统)。 - 也可以手动删除用户目录下的`.gradle/caches`文件夹(注意:这将删除所有项目的缓存,请谨慎操作)。 4. **检查网络和代理设置**: - 如果依赖下载缓慢,可以检查网络连接,或者配置国内镜像仓库(如阿里云镜像)。 - 在项目的`build.gradle`文件中,修改仓库配置: ```groovy repositories { maven { url 'https://maven.aliyun.com/repository/public/' } mavenLocal() mavenCentral() } ``` 5. **检查依赖冲突**: - 使用Gradle的依赖树命令排查冲突:`./gradlew :zdjx-cosmic-debug:dependencies --configuration runtimeClasspath`(根据实际配置调整)。 -IDEA中,可以通过右侧的Gradle工具窗口运行任务。 6. **查看详细日志**: -IDEA中运行Gradle构建时,查看Gradle控制台输出的详细日志,可能包含具体错误信息。 - 可以尝试在命令行中手动运行Gradle构建命令,以便获取更详细的错误信息。 7. **重新导入项目**: - 关闭当前项目,删除项目目录下的`.idea`文件夹和所有`.iml`文件,然后重新使用IDEA打开项目并导入。 8. **更新Gradle和插件版本**: - 如果项目允许,尝试更新Gradle版本和项目中的插件版本,以解决可能的兼容性问题。 由于用户的问题描述中提到了特定的模块(zdjx-cosmic-debug),可能需要重点检查该模块的配置。 根据引用[5]的提示,我们优先尝试降级IDEA版本,因为这是直接相关的解决方案。同时,结合其他通用方法。 生成的相关问题: 1. 如何降低IDEA的版本? 2. 如何配置Gradle使用阿里云镜像? 3. 如何查看Gradle构建的依赖树? 4. 如何手动删除Gradle缓存? 5. 重新导入IDEA项目需要注意什么? 注意:在回答中,我们引用了引用[5]的内容,因此添加引用标识[^5]。 </think> ### IDEA启动项目卡在Gradle构建的解决方法 根据您描述的卡在`Executing 'hrgen:code:zdjx-cosmic-debug [:zdjx-cosmic-debug:DebugApplication.main()] Gradle: Building...`问题,结合站内引用信息,建议按以下步骤排查: #### 1. **验证IDEA版本兼容性** - 引用[5]表明高版本IDEA(如2024.2.4)可能与服务器环境冲突 - **操作**: - 降级到稳定版本(如2023.3.4) - 修改远程开发配置:`File > Settings > Build Tools > Gradle`,将Gradle JVM改为`Project JDK` #### 2. **清理Gradle缓存** - 卡在构建阶段常因缓存损坏引起 - **操作**: - 终端执行: ```bash ./gradlew cleanBuildCache --rerun-tasks rm -rf ~/.gradle/caches # 彻底清理全局缓存 ``` - 重启IDEA后选择`File > Invalidate Caches` #### 3. **检查依赖冲突** - 引用[2]显示`NoClassDefFoundError`可能与缺失依赖有关 - **操作**: - 检查`build.gradle`: ```groovy configurations.all { resolutionStrategy { failOnVersionConflict() // 启用冲突检测 force 'org.apache.ant:ant:1.10.12' // 强制指定常见冲突库 } } ``` - 执行`./gradlew :zdjx-cosmic-debug:dependencies`查看依赖树 #### 4. **修复APT系统问题** - 引用[3][4]提示`appstreamcli`错误可能影响环境 - **操作**: ```bash sudo pkill -KILL appstreamcli sudo apt install --reinstall libappstream3 ``` #### 5. **优化Gradle配置** - **关键配置**: ```properties # gradle.properties中添加 org.gradle.jvmargs=-Xmx4096m -XX:MaxMetaspaceSize=512m org.gradle.parallel=true org.gradle.caching=true ``` ### 验证流程 ```mermaid graph LR A[降级IDEA版本] --> B[清理Gradle缓存] B --> C[检查依赖冲突] C --> D[修复系统环境] D --> E[优化配置] E --> F[重启IDEA重试] ``` ### 预防措施 1. 使用`.idea/gradle.xml`锁定Gradle版本: ```xml <component name="GradleSettings"> <option name="version" value="7.6.1" /> </component> ``` 2. 定期运行`./gradlew --stop`终止残留守护进程 3. 避免在构建过程中修改依赖(需重新`Refresh Gradle Project`) > **注意**:若问题持续,请检查`$PROJECT_ROOT/.gradle/daemon`日志文件定位具体阻塞阶段[^5][^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值