gpt4 book ai didi

c++ - 应用程序在没有附加调试器的情况下抛出异常

转载 作者:太空宇宙 更新时间:2023-11-04 12:13:28 24 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,老实说,我不知道是什么原因造成的。无论出于何种原因,当我从 Qt Creator 调试我的应用程序时,我的应用程序运行良好,没有任何异常,但是当我只运行该应用程序时,我得到一个写入访问冲突异常(如下)

(1f68.1ea8): Access violation - code c0000005 (first chance)

Exception at 0x77da2073, code: 0xc0000005: write access violation at: 0x1, flags=0x0 in ntdll!RtlpLowFragHeapFree

First chance exceptions are reported before any exception handling.

This exception may be expected and handled.

eax=00720065 ebx=82130074 ecx=006f007f edx=0000006f esi=01fa5fb6 edi=82130000 eip=77da2073 esp=0012cc70 ebp=0012cca4 iopl=0 nv up ei pl nz na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010202

ntdll!RtlpLowFragHeapFree+0xc5: 77da2073 8930 mov dword ptr [eax],esi ds:0023:00720065=????????

Exception at 0x77da2073, code: 0xc0000005: write access violation at: 0x1, flags=0x0

NOTE: INFERIOR SPONTANEOUS STOP

State changed from InferiorRunOk(11) to InferiorStopOk(14).

当我注释掉它中断的行时(运行后,然后手动附加调试器),它似乎将我带到了同一问题的不同行。我使用的工具链是 MSVCC,带有附加标志:

QMAKE_CFLAGS_RELEASE += -Zi

QMAKE_CXXFLAGS_RELEASE += -Zi -g

QMAKE_LFLAGS_RELEASE += /DEBUG /OPT:REF

回顾一下,这是我尝试过的:

  • 使用调试配置进行调试 - ok
  • 使用调试配置运行 - ok
  • 使用发布配置进行调试 - ok
  • 使用发布配置运行 - 异常

最佳答案

你在双重释放某些东西吗?快速搜索会出现 this article about double freeing .

我不确定 MSVCC 的等效项可能是什么(文章提到了一个名为 gflags.exe 的工具),但是在带有 GCC 的 Linux 下,您可以使用一个名为 Valgrind 的程序和 memcheck 工具来发现这类问题。

关于c++ - 应用程序在没有附加调试器的情况下抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8783432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com