C++断点异常

1.如下代码报错 list iterator not incrementable:

for (list<Pair>::iterator it = pair_list.begin(); it != pair_list.end();it++)
        {
            Pair p = *it;
            if ((p.v1 == pv && p.v2 == v2) || (p.v1 == v2 && p.v2 == pv))
            {
                pair_list.erase(itt);
            }
        }

解决方案:

for (list<Pair>::iterator it = pair_list.begin(); it != pair_list.end();)
        {
            Pair p = *it;
            if ((p.v1 == pv && p.v2 == v2) ||
             (p.v1 == v2 && p.v2 == pv))
            {
                pair_list.erase(it);
            }
            else
                ++it;
        }

2.以上代码又报错rators incompatible:
解决方案:

pair_list.erase(it);

改为

it = pair_list.erase(it);
Linux C 异常工具主要有以下几种: 1. gdb(GNU Debugger):gdb是一款强大的调试器工具,用于调试C程序和其他编程语言的程序。它可以帮助我们定位和修复程序中的异常bug,如内存泄漏、段错误等。gdb可以通过设置断点,查看变量的值,单步执行代码等功能来帮助我们分析程序的执行过程。 2. strace:strace是一款跟踪系统调用和信号的工具,可以用于定位异常的系统调用问题。它可以记录进程的系统调用和信号传递,并将其输出到终端或日志文件中,以帮助我们分析程序的执行过程。 3. valgrind:valgrind是一款内存调试和性能分析的工具。它可以检测内存泄漏、使用未初始化的变量、越界访问等问题,并提供详细的报告。valgrind还可以进行代码性能分析,包括指令级的性能分析、缓存分析等,帮助我们优化程序的性能。 4. addr2line:addr2line是一个命令行工具,用于将程序中的地址转换为源代码中的行号。当程序发生异常崩溃时,我们可以使用addr2line工具来定位程序出错的位置,以便进行调试和修复。 5. ltrace:ltrace是一款跟踪动态链接库调用的工具。它可以输出程序运行过程中动态链接库函数的调用情况,帮助我们分析程序在运行时使用了哪些库函数,以及这些函数的参数和返回值。 通过使用这些Linux C异常工具,我们可以更方便地定位和解决程序中的异常问题,提高程序的稳定性和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值