Visual Studio:在消毒剂异常后继续

问题描述

我认为 AddressSanitizer 是 Visual Studio一个很好的补充,但它会导致问题,让我谈谈我的情况。 例如。我实现了我的自定义 strlen() 函数如下:

size_t my_strlen(const char *my_string) 
{
    int n = 0;
    if (my_string == NULL) return 0;
    while (my_string[n] != 0) n++;
    return n;
}

函数运行良好,直到在启用 AddressSanitizer 的情况下构建程序,这将导致在 Visual Studio Debugger 下运行程序时出现异常,因为该函数尝试读取参数“my_string”的边界外的 1 个字节,到目前为止,太好了,但是我怎么能忽略这个异常并继续正常执行程序???

Visual Studio 当前行为:如果我在异常对话框中单击“继续”:它会再次中断,然后再次异常退出

我想要的是:单击“继续”,Visual Studio 知道我告诉它“我知道这个异常,但我稍后会解决它,现在,忽略它并继续”。我知道,我们可以通过使用 Menu -> Debug -> Windows -> Exceptions Settings 在 VS Debugger 中禁用特定类型的异常处理,但在我的情况下,我只想在遇到它时忽略 1 个异常,而不是针对特定类型。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)