vs2017本机代码调试异常调用非托管代码

时间:2018-03-11 13:31:22

标签: vb.net debugging unmanaged

我正在从VB.NET调用一个正确声明的非托管C ++ DLL,如下所示:

Query query = databaseReferenceMarkers.orderByChild("lat").equalTo(marker.getPosition().latitude);
query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

       for (DataSnapshot child: dataSnapshot.getChildren()) { child.getRef().removeValue(); }


        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            Log.e(TAG, "onCancelled", databaseError.toException());
        }
    });

这没有问题,输出是预期的。 然后我想调试我的代码。我在第1行设置了一个BP,然后跳过(F10)到第3行。这再一次没有问题。 然后我启用了“本机代码调试”并再次执行相同的操作。然而,这不再起作用了。一旦我在第2行按F10(跳过),就会在ntdll.dll(访问冲突写入位置0x)中抛出异常。

最终我希望能够使用F11(步入)单步进入非托管函数,这也不能用于相同的异常。但是我很困惑,因为为什么跳过也不起作用。

此外,我试图在DLL代码中设置BP,但是我不能这样做,因为显然“没有为此文档加载符号”。这是另一件我不理解的事情,因为DLL是在完全调试的情况下编译的,并且它被正确地包含在解决方案中的项目中。

有没有人知道问题可能是什么?请记住,执行代码正常,无需调试步进,工作正常。

0 个答案:

没有答案