Skip to content
Snippets Groups Projects
Commit f6eba8fa authored by Erik Gilling's avatar Erik Gilling
Browse files

cutils: make set_process_name set kernel thread name as well

parent 5e7db233
Branches
Tags
No related merge requests found
...@@ -22,6 +22,10 @@ ...@@ -22,6 +22,10 @@
#include <sys/stat.h> #include <sys/stat.h>
#include <fcntl.h> #include <fcntl.h>
#if defined(HAVE_PRCTL)
#include <sys/prctl.h>
#endif
#define PROCESS_NAME_DEVICE "/sys/qemu_trace/process_name" #define PROCESS_NAME_DEVICE "/sys/qemu_trace/process_name"
static const char* process_name = "unknown"; static const char* process_name = "unknown";
...@@ -35,10 +39,19 @@ void set_process_name(const char* new_name) { ...@@ -35,10 +39,19 @@ void set_process_name(const char* new_name) {
} }
// We never free the old name. Someone else could be using it. // We never free the old name. Someone else could be using it.
char* copy = (char*) malloc(strlen(new_name) + 1); int len = strlen(new_name);
char* copy = (char*) malloc(len + 1);
strcpy(copy, new_name); strcpy(copy, new_name);
process_name = (const char*) copy; process_name = (const char*) copy;
#if defined(HAVE_PRCTL)
if (len < 16) {
prctl(PR_SET_NAME, (unsigned long) new_name, 0, 0, 0);
} else {
prctl(PR_SET_NAME, (unsigned long) new_name + len - 15, 0, 0, 0);
}
#endif
// If we know we are not running in the emulator, then return. // If we know we are not running in the emulator, then return.
if (running_in_emulator == 0) { if (running_in_emulator == 0) {
return; return;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment