DEV Community

Ariston
Ariston

Posted on

gdb的使用

关于next和step的区别:next不会进入函数中,而step会进入

n有时也可以进入函数内部,如下

#include <iostream>
#include <vector>

// 函数用于计算向量元素的总和
int sum(const std::vector<int>& numbers) {
    int total = 0;
    for (int num : numbers) {
        total += num;
    }
    return total;
}

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};

    // 故意制造的错误: 应该是 <= 而不是 <
    for (size_t i = 0; i < numbers.size(); i++) {
        numbers[i] = i;
    }

    int result = sum(numbers);

    std::cout << "Sum of vector elements: " << result << std::endl;

    // 一个可能导致程序崩溃的错误
    int* ptr = new int(10);
    delete ptr;
    *ptr = 20; // 悬垂指针

    return 0;
}
Enter fullscreen mode Exit fullscreen mode

我们在main 和sum处打断点,那么,当我们用c之后到了断电num处时,在使用n就会进入函数内部

Top comments (0)