地址清理程序缺少输出

Jack J Jun 24,516 信誉分 Microsoft 供应商
2024-01-30T08:19:12.21+00:00

我已按照此文档运行启用了 asan 的最小 MSVC 编译应用程序:https://learn.microsoft.com/en-us/cpp/sanitizers/asan?view=msvc-170#command-prompt 

在 Windows 10 上运行可执行文件时,使用最新的 msvc v16.11.7(我们还在另一台电脑上测试了 2 个早期版本),运行时输出仅包含前 2 行。 所以我可以看到:

AddressSanitizer: global-buffer-overflow on address 0x006fbed0 at pc 0x00691155 bp 0x00cafb14 sp 0x00cafb08
WRITE of size 4 at 0x006fbed0 thread T0

但除了这些行之外,我没有得到任何信息,程序执行已停止,我必须按“ctrl+c”在命令行上退出。 我希望看到 Microsoft 文档所显示的内容,即包含堆栈跟踪的完整报告。 我在这里缺少什么?

Note:此问题总结整理于:address sanitizer missing output - Microsoft Q&A

C++
C++
一种通用的高级编程语言,作为 C 编程语言的扩展而创建,除了用于低级别内存操作的功能外,还具有面向对象、泛型和功能性等特点。
147 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Hui Liu-MSFT 48,571 信誉分 Microsoft 供应商
    2024-01-30T09:20:50.6533333+00:00

    你好,根据文档,您需要在IDE中另外设置这些选项:

    1.程序数据库(/Zi) User's image

    2.关闭编辑并继续
    3.关闭 /RTC1(运行时检查)
    4.关闭 /INCREMENTAL(增量链接) 我测试了样品,效果很好。
    如果以上设置未能生效,恐怕需要提供更相关的信息。

    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。 注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。