Mercurial > libjeffpc
changeset 836:ceb71a7a96f6
error: print thread name in cmn_err output
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Wed, 03 Mar 2021 19:12:53 -0500 |
parents | 3d25e6c09e9f |
children | e1afd5b277d6 |
files | error.c |
diffstat | 1 files changed, 15 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/error.c Wed Mar 03 19:09:17 2021 -0500 +++ b/error.c Wed Mar 03 19:12:53 2021 -0500 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2020 Josef 'Jeff' Sipek <jeffpc@josefsipek.net> + * Copyright (c) 2013-2021 Josef 'Jeff' Sipek <jeffpc@josefsipek.net> * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -31,6 +31,7 @@ #include <jeffpc/config.h> #include <jeffpc/error.h> +#include <jeffpc/thread.h> #include "init.h" @@ -169,7 +170,9 @@ { const char *levelstr; const char *session; + const char *name; unsigned long tid; + size_t namelen; int loglevel; bool panic; char buf[256]; @@ -213,9 +216,11 @@ vsnprintf(buf, sizeof(buf), fmt, ap); /* - * Get the session string. + * Get the session & thread name strings. */ session = get_session(); + name = xthr_get_name(); + namelen = strlen(name); /* * We are printing the thread ID as a 4-digit number. This will @@ -225,8 +230,14 @@ * clustered around some big integer, they will very likely always * print as the same number of digits. */ - jeffpc_log(loglevel, "[%04lx] %-5s%s %s\n", tid, levelstr, session, buf); - jeffpc_print(level, "[%04lx] %-5s%s %s\n", tid, levelstr, session, buf); + jeffpc_log(loglevel, "[%04lx%s%s]%*s %-5s%s %s\n", tid, + namelen ? "/" : "", name, + XTHR_NAME_MAX_LEN - (int) namelen + (namelen ? 0 : 1), "", + levelstr, session, buf); + jeffpc_print(level, "[%04lx%s%s]%*s %-5s%s %s\n", tid, + namelen ? "/" : "", name, + XTHR_NAME_MAX_LEN - (int) namelen + (namelen ? 0 : 1), "", + levelstr, session, buf); if (panic) { print_stacktrace(CE_CRIT, NULL);