remove GetThreadBacktraceContext; GetBacktrace( x, NULL ) gets the current backtrace

This commit is contained in:
Glenn Maynard
2004-03-19 09:25:45 +00:00
parent 361a88f4b9
commit 5dd5bda234
5 changed files with 20 additions and 28 deletions
+9 -19
View File
@@ -22,7 +22,7 @@ void GetSignalBacktraceContext( BacktraceContext *ctx, const ucontext_t *uc )
ctx->pid = GetCurrentThreadId();
}
void GetCurrentBacktraceContext( BacktraceContext *ctx )
static void GetCurrentBacktraceContext( BacktraceContext *ctx )
{
register void *esp __asm__ ("esp");
ctx->esp = (long) esp;
@@ -30,18 +30,6 @@ void GetCurrentBacktraceContext( BacktraceContext *ctx )
ctx->ebp = (long) __builtin_frame_address(0);
}
int GetThreadBacktraceContext( int ThreadID, BacktraceContext *ctx )
{
ctx->pid = ThreadID;
if( ThreadID != GetCurrentThreadId() )
return GetThreadContext( ThreadID, ctx );
GetCurrentBacktraceContext( ctx );
return 0;
}
static const char *itoa(unsigned n)
{
static char ret[32];
@@ -293,16 +281,18 @@ void GetExceptionBacktraceContext( BacktraceContext *ctx, const ExceptionInforma
ctx->FramePtr = (void *) exception->registerImage->R1.lo;
}
void GetCurrentBacktraceContext( BacktraceContext *ctx )
{
ctx->FramePtr = __builtin_return_address(2);
}
void InitializeBacktrace() { }
void GetBacktrace( const void **buf, size_t size, const BacktraceContext *ctx )
{
Frame *frame = (Frame *) ctx->FramePtr;
BacktraceContext CurrentCtx;
if( ctx == NULL )
{
ctx = &CurrentCtx;
CurrentCtx.FramePtr = (void *) __builtin_frame_address(0);
}
const Frame *frame = (Frame *) ctx->FramePtr;
unsigned i = 0;
while( frame && i < size-1 ) // -1 for NULL