写点什么

代码简易调试方法.md

用户头像
HQ数字卡
关注
发布于: 2020 年 11 月 11 日



在代码开发测试过程中,调试是我们必要的一步操作。下面介绍3种常见的调试方法,帮助你更好的理解掌握程序的运行情况。

1. 输出调试

为什么很多程序的入门第一个程序都是"hello world"?

因为在这个基本的交互教会了我们最朴素,也是最常用的程序调试方式。

下面是常见语言的 hello world 输出

public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}



package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}



#!/usr/bin/python3
print("Hello, World!")



#include <iostream>
using namespace std;
int main()
{
cout << "Hello, world!" << endl;
return 0;
}



#include <stdio.h>
int main()
{
printf("Hello, World! \n");
return 0;
}



在算法题目中, 我们也常常通过print的方式来调试代码。

2. IntelliJ IDEA Debug调试

IDEA是我们在开发测试过程中,常用的编译器。其中的debug模式更是神器。

下面以leetcode 46题为例子简单演示一下操作过程。



package service;
/**
* 46. 全排列
* 给定一个 没有重复 数字的序列,返回其所有可能的全排列。
* <p>
* 示例:
* <p>
* 输入: [1,2,3]
* 输出:
* [
* [1,2,3],
* [1,3,2],
* [2,1,3],
* [2,3,1],
* [3,1,2],
* [3,2,1]
* ]
*/
import java.util.*;
public class Permute {
public static void main(String[] args) {
int[] nums = {1, 2};
List<List<Integer>> res = new Permute().permute(nums);
System.out.println(res);
}
public List<List<Integer>> permute(int[] nums) {
int len = nums.length;
List<List<Integer>> answer = new ArrayList<>();
if (len == 0) {
return answer;
}
if (len == 1) {
List<Integer> temp = new ArrayList<>();
temp.add(nums[0]);
answer.add(temp);
return answer;
}
boolean[] used = new boolean[len];
List<Integer> temp = new ArrayList<>();
dfs(nums, len, 0, temp, used, answer);
return answer;
}
private void dfs(int[] nums, int len, int depth, List<Integer> temp,
boolean[] used, List<List<Integer>> answer) {
if (depth == len) {
answer.add(new ArrayList<>(temp));
return;
}
for (int i = 0; i < len; i++) {
if (!used[i]) {
temp.add(nums[i]);
used[i] = true;
dfs(nums, len, depth + 1, temp, used, answer);
used[i] = false;
temp.remove(temp.size() - 1);
}
}
}
}



  1. 选中断点



  1. Run Select Debug



  1. 运行起来就可以看到dfs中变量的变化情况。



通过debug的方式,可以帮助我们可视化的掌握代码运行情况。

不仅仅是IDEA,其他语言的编译器也有Debug的功能,来帮助我们理解程序的执行情况。

3. 日志调试



在实际线上运行的服务中, 没有IDEA等神器来调试程序,我们一般通过打印日志来分析程序的执行情况。

统一的日志规范可以提升我们排查问题的效率。下面是常见的日志字段供参考。

  • time 记录时间

  • level 日志级别

  • app 应用名称

  • request_id 请求ID

  • msg 日志正文



常见的调试方法介绍完了,赶快去试一试吧!



发布于: 2020 年 11 月 11 日阅读数: 68
用户头像

HQ数字卡

关注

还未添加个人签名 2019.09.29 加入

略懂后端的RD

评论

发布
暂无评论
代码简易调试方法.md