我正在调查已编译的Unity C#代码的堆栈跟踪。它导致标准C free()函数内部出错。调用free()的框架是一个非常简单的方法,如下所示:
void Method()
{
SomeOtherMethod();
if (StaticClass.StaticProperty == SomeMethod())
{
StaticClass.StaticProperty = 0;
StopCoroutine("Coroutine name");
if (m_privateField < CONSTANT)
YetAnotherMethod();
else
AndOneMoreMethod();
}
}
在我看来,我在这里所做的就是调用其他代码并进行非常基本的平等比较和条件;但是,此代码和free()之间没有其他框架。这有什么可能称之为呢?
这是由xcode表示的堆栈跟踪的这一部分:
11 libsystem_c.dylib 0x3aa5be90 _sigtramp + 40
12 libsystem_c.dylib 0x3aa272dc free + 168
13 dev 0x002ea644 ___lldb_unnamed_function10628$$dev + 176
I was able to determined that line 13 is this method with the help of atoc.