一、IntelliJ IDEA调试

1. 前言

程序员的日常工作除了写代码之外,很大一部分时间将会在查找 BUG,解决问题。查找 BUG,离不开在 IDE 中调试代码。熟练的掌握调试技巧,可以帮助我们减少查找时间,快速定位问题。

在 IDEA 中调试代码很方便,只要开启调试,在相应代码处使用断点,然后进行相应调试即可。正是因为只要掌握这几个功能,就可以调试代码,所以在很长一段时间内,不了解其他调试技巧。后续深入使用 IDEA 过程中,不断学会 IDEA 其他调试技巧,很大程度上加快调试速度。

2. 访问断点属性

如果要查看当前项目中的断点的整个列表,请使用“断点”对话框。对于列表中的每个单独的断点,您可以根据需要查看和更改其属性。

3. 查看所有断点

若要查看所有断点及其属性的列表,请执行下列操作之一:

  • 在主菜单上选择:运行| 查看断点(Run | View Breakpoints)。
  • 按 Ctrl+Shift+F8。
  • 在 "调试工具" 窗口的工具栏中,点击
    image.png
  • 断点在 "收藏夹" 工具窗口中是可见的

4. 如何进行DeBug调试

4.1. 方式一

为项目配置了运行配置后,可以通过按 Shift+F9 在调试模式下启动它。
在 "调试工具" 窗口中,您可以看到框架和线程的状态、变量和表的列表。当您选择一个框架时,您会看到与所选框架相对应的变量。

4.2. 方式二

主启动类右键,选择Debug...
image.png

4.3. 方式三

在顶部工具栏选择主启动类①,然后点击Debug图标②即为Debug调试方式运行
image.png

5. 调试快捷方式

  • 切断断点:Ctrl+F8
  • 恢复程序:F9
  • 跳过(Step Over):F8,一行一行地往下走,如果这一行上有方法不会进入方法。
  • 跳入(Step Into):F7,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,
  • 不会进入官方类库的方法。
  • 强制跳入(Force Step Into):Alt + Shift + F7,能进入任何方法,查看底层源码的时候可以用这
  • 个进入官方类库的方法。
  • 停止: Ctrl+F2
  • 查看断点详细信息/所有断点(View breakpoint details/all breakpoints):Ctrl+Shift+F8
  • 在插入符号中调试代码: Shift+F9 (当您停留在 main 方法中时),或 Shift+Alt+F9

6. 修改快捷键

File->Settings...->Keymap:可修改为自己熟悉的开发工具得快捷键,也可以针对某些操作进行快捷键
设置。
image.png

7. 断点使用

7.1. 单步调试

  • step over
    image.png

点击红色箭头指向的按钮,程序向下执行一行(如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行)

  • step into
    image.png
    点击红色箭头指向的按钮,程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法)
  • Force step into
    image.png
    该按钮在调试的时候能进入任何方法。
  • step out
    image.png
    如果在调试的时候你进入了一个方法,并觉得该方法没有问题,你就可以使用step out跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,该方法已执行完毕。

7.2. 高级调试

  • Resume Program
    image.png
    程序将运行一个断点到下一个断点之间需要执行的代码。如果后面代码没有断点,再次点击该按钮将会执行完程序。
  • View Breakpoints...
    image.png
    点击箭头指向的按钮,可以查看你曾经设置过的断点并可设置断点的一些属性。
  • Mute Breakpoints...
    image.png

点击箭头指向的按钮,可以禁用所有设置的断点

  • 条件断点
    image.png

进入查看断点界面后,点击Condition触发输入框,即可输入条件

  • Run to Cursor
    image.png

点击该按钮后,直接跳转到当前光标处

  • Evaluate Expression
    image.png
    image.png
    在输入框中输入对象,可查看具体的值

二、SQL server监控调试

1. SQL Profiler工具简介

  • SQL Profiler是一个图形界面和一组系统存储过程,其作用如下:
  • 图形化监视SQL Server查询;
  • 在后台收集查询信息;
  • 分析性能;
  • 诊断像死锁之类的问题;
  • 调试T-SQL语句;
  • 模拟重放SQL Server活动;
    也可以使用SQL Profiler捕捉在SQL Server实例上执行的活动。这样的活动被称为Profiler跟踪。

2. Profiler跟踪

  • 打开SQL Server Management Studio=》工具=》SQL Server Profiler。
    image.png
  • 然后选择文件=》新建=》跟踪打开一个连接窗口,选择将要跟踪的服务器实例然后连接。打开如下“跟踪属性”对话框。
    image.png
  • 如果有许多跟踪,可以提供一个跟踪名称来帮助在以后进行分类。不同的跟踪模板可帮助建立用于不同目的的跟踪。打开跟踪属性窗口后,单击“事件选择”选项卡,为跟踪提供更详细的定义。
    image.png
  • 监控调试窗口工具栏部分按钮说明
    image.png

3. 事件

一个事件表现SQL Server中执行的各种活动。这些活动可以简单地分类为事件类,游标事件,锁事件,存储过程事件和T-SQL事件是常见的事件类。

对于性能分析,主要对SQL Server上执行的各种活动的资源压力水平的事件感兴趣。资源压力主要包含如下内容:

  • SQL活动涉及哪一类的CPU使用?
  • 使用了多少内存?
  • 涉及多少I/0操作?
  • SQL活动执行了多长时间?
  • 特定的查询执行的频率有多高?
  • 查询面对哪类错误和警告?
    下面给出跟踪查询结束的事件:
    image.png
    C 事件表示存储过程使用远程过程调用(RPC)机制通过OLEDB命令执行。如果一个数据库应用程序使用T-SQL EXECUTE语句执行一个存储过程,那么存储过程将被转化为一个SQL批而不是一个RPC。
    RPC请求通常比EXECUTE请求快,因为它绕过了SQL Server中的许多语句解析和参数处理。

    T-SQL由一条或多条T-SQL语句组成。语句或T-SQL语句在存储过程中也是单独和离散的。用SP:StmtCompleted或SQL:StmtCompleted事件捕捉单独的语句可能是代价很高的操作,这取决于单独
    语句的数量。假设系统中的每个存储过程包含且只有一条T-SQL语句。在这种情况下,完成的语句集合相当小。现在假定过程中有多条语句,而且这些过程中有些使用其他语句调用其他过程。收集所有这些
    额外的数据现在变成系统上非常厉害的负载。在生产机上一定要慎用。

    现在回到那个事件选择面板,只有已经被选择的事件才会被显示。如果想显示所有可供选择的事件,则只需选中“显示所有事件”单选框,要添加一个跟踪事件,在Event列中查找一个事件类下的事件,并单击其左边的检查框;要删除不需要的事件,取消选中的事件选择框。
    image.png
    与性能诊断有关的事件
    image.png


波波鱼
4 声望3 粉丝