【问题标题】:Access violation - code c0000005 (!!! second chance !!!)访问冲突 - 代码 c0000005(!!!第二次机会!!!)
【发布时间】:2013-04-14 08:34:30
【问题描述】:

我正在尝试使用 windbg 和 vmware 进行内核调试。当我尝试为自己的驱动程序指定断点时,我得到了类似的输出

Access violation - code c0000005 (!!! second chance !!!)
nt!MmFreePagesFromMdl+0xc:
82879761 f6430601        test    byte ptr [ebx+6],1

这是什么?

【问题讨论】:

    标签: winapi windows-7 kernel driver windbg


    【解决方案1】:

    这是访问冲突,即你的代码试图访问一个无效的内存地址,即异常代码0xC0000005。

    第二次机会 部分是调试器术语。每次抛出异常时,它都会向调试器(如果存在)发出信号,以防它想要做某事:这是第一次机会。如果调试器什么都不做,异常就会传递给应用程序,或者在你的情况下传递给内核。如果应用程序不处理它,异常会再次传递给调试器:这是第二次机会

    通常,调试器会忽略第一次机会,但会在第二次机会上中断,但通常两者都有一个调试器选项。

    【讨论】:

    • 我的代码的哪一行有没有可能导致这个异常?
    • 有没有可能找到我的代码的哪一行导致了这个异常
    • @darkendemon:您必须在调试器中找到“抛出异常中断”或“第一次机会异常中断”或类似选项。
    • 我在我的驱动程序中使用了这些函数是否有可能导致这个异常"MmFreeNonCachedMemory(objectTypeInfo,sizeof(POBJECT_TYPE_INFORMATION)+0x1000); MmFreeNonCachedMemory(objectNameInfo,sizeof(PVOID)+0x1000);"可能是由于:memory_corruption ( nt!MmFreePagesFromMdl+c )
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多