engine: platform: posix: add printing backtrace to stderr and logfile for libbacktrace backend
This commit is contained in:
parent
bf344282ec
commit
c06ea8d915
1 changed files with 10 additions and 1 deletions
|
@ -41,6 +41,7 @@ struct print_data
|
||||||
size_t message_size;
|
size_t message_size;
|
||||||
int len;
|
int len;
|
||||||
int idx;
|
int idx;
|
||||||
|
int logfd;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void Sys_AppendPrint( struct print_data *pd, const char *fmt, ... )
|
static void Sys_AppendPrint( struct print_data *pd, const char *fmt, ... )
|
||||||
|
@ -54,6 +55,14 @@ static void Sys_AppendPrint( struct print_data *pd, const char *fmt, ... )
|
||||||
|
|
||||||
if( len > 0 )
|
if( len > 0 )
|
||||||
{
|
{
|
||||||
|
char ch = '\n';
|
||||||
|
|
||||||
|
write( pd->logfd, pd->message, len );
|
||||||
|
write( pd->logfd, &ch, 1 );
|
||||||
|
|
||||||
|
write( STDERR_FILENO, pd->message, len );
|
||||||
|
write( STDERR_FILENO, &ch, 1 );
|
||||||
|
|
||||||
pd->message += len;
|
pd->message += len;
|
||||||
pd->len += len;
|
pd->len += len;
|
||||||
pd->message_size -= len;
|
pd->message_size -= len;
|
||||||
|
@ -142,7 +151,7 @@ void Sys_CrashLibbacktrace( int signal, siginfo_t *si, void *context )
|
||||||
write( STDERR_FILENO, message, len );
|
write( STDERR_FILENO, message, len );
|
||||||
|
|
||||||
// now get log fd and write trace directly to log
|
// now get log fd and write trace directly to log
|
||||||
logfd = Sys_LogFileNo();
|
pd.logfd = logfd = Sys_LogFileNo();
|
||||||
write( logfd, message, len );
|
write( logfd, message, len );
|
||||||
|
|
||||||
pd.message = message + len;
|
pd.message = message + len;
|
||||||
|
|
Loading…
Add table
Reference in a new issue