fixes for Android
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
This commit is contained in:
@@ -164,60 +164,6 @@ SSystemCVars g_cvars;
|
||||
#include <AzCore/Component/ComponentApplication.h>
|
||||
#include "AZCoreLogSink.h"
|
||||
|
||||
#if defined(ANDROID)
|
||||
namespace
|
||||
{
|
||||
struct Callstack
|
||||
{
|
||||
Callstack()
|
||||
: addrs(NULL)
|
||||
, ignore(0)
|
||||
, count(0)
|
||||
{
|
||||
}
|
||||
Callstack(void** addrs, size_t ignore, size_t count)
|
||||
{
|
||||
this->addrs = addrs;
|
||||
this->ignore = ignore;
|
||||
this->count = count;
|
||||
}
|
||||
void** addrs;
|
||||
size_t ignore;
|
||||
size_t count;
|
||||
};
|
||||
|
||||
static _Unwind_Reason_Code trace_func(struct _Unwind_Context* context, void* arg)
|
||||
{
|
||||
Callstack* cs = static_cast<Callstack*>(arg);
|
||||
if (cs->count)
|
||||
{
|
||||
void* ip = (void*) _Unwind_GetIP(context);
|
||||
if (ip)
|
||||
{
|
||||
if (cs->ignore)
|
||||
{
|
||||
cs->ignore--;
|
||||
}
|
||||
else
|
||||
{
|
||||
cs->addrs[0] = ip;
|
||||
cs->addrs++;
|
||||
cs->count--;
|
||||
}
|
||||
}
|
||||
}
|
||||
return _URC_NO_REASON;
|
||||
}
|
||||
|
||||
static int Backtrace(void** addrs, size_t ignore, size_t size)
|
||||
{
|
||||
Callstack cs(addrs, ignore, size);
|
||||
_Unwind_Backtrace(trace_func, (void*) &cs);
|
||||
return size - cs.count;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// System Implementation.
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user