文档目录
// 一个循环中的 Bug:第 1000 次才出现
void process_data(std::vector<int>& data) {
    for (int i = 0; i < data.size(); i++) {
        // 只有在 i = 1000 时才崩溃
        if (i == 1000) {
            data[i] = data[2000];  // 如果 data 不够大就越界了
        }
    }
}
# ❌ 普通断点:要手动按 1000 次 continue
(gdb) break process_data

# ✅ 条件断点:直接停在崩溃的那次循环
(gdb) break process_data if i == 1000
(gdb) run
Breakpoint 1, process_data at main.cpp:15
(gdb) print data.size()          # 查看是否越界
$1 = 1500                        # size = 1500 < 2000,越界了!

线程条件断点:

# 只在线程 3 触发断点
break worker if thread == 3