Changes in uspace/srv/taskmon/taskmon.c [7e752b2:444a54e] in mainline
- File:
-
- 1 edited
-
uspace/srv/taskmon/taskmon.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/taskmon/taskmon.c
r7e752b2 r444a54e 44 44 #include <macros.h> 45 45 #include <errno.h> 46 #include <str_error.h>47 46 48 47 #define NAME "taskmon" … … 50 49 static void fault_event(ipc_callid_t callid, ipc_call_t *call) 51 50 { 52 const char *fname; 51 char *argv[6]; 52 char *fname; 53 char *dump_fname; 53 54 char *s_taskid; 54 int rc;55 char **s; 55 56 56 57 task_id_t taskid; … … 60 61 thread = IPC_GET_ARG3(*call); 61 62 62 if (asprintf(&s_taskid, "%" PRIu 64, taskid) < 0) {63 if (asprintf(&s_taskid, "%" PRIuTASKID, taskid) < 0) { 63 64 printf("Memory allocation failed.\n"); 64 65 return; 65 66 } 66 67 67 printf(NAME ": Task %" PRIu64 " fault in thread %p.\n", taskid, 68 (void *) thread); 69 70 fname = "/app/taskdump"; 71 72 #ifdef CONFIG_WRITE_CORE_FILES 73 char *dump_fname; 74 75 if (asprintf(&dump_fname, "/data/core%" PRIu64, taskid) < 0) { 68 if (asprintf(&dump_fname, "/data/core%" PRIuTASKID, taskid) < 0) { 76 69 printf("Memory allocation failed.\n"); 77 70 return; 78 71 } 79 72 80 printf(NAME ": Executing %s -c %s -t %s\n", fname, dump_fname, s_taskid); 81 rc = task_spawnl(NULL, fname, fname, "-c", dump_fname, "-t", s_taskid, 82 NULL); 73 printf(NAME ": Task %" PRIuTASKID " fault in thread %p.\n", taskid, thread); 74 75 #ifdef CONFIG_WRITE_CORE_FILES 76 argv[0] = "/app/taskdump"; 77 argv[1] = "-c"; 78 argv[2] = dump_fname; 79 argv[3] = "-t"; 80 argv[4] = s_taskid; 81 argv[5] = NULL; 83 82 #else 84 printf(NAME ": Executing %s -t %s\n", fname, s_taskid); 85 rc = task_spawnl(NULL, fname, fname, "-t", s_taskid, NULL); 83 argv[0] = "/app/taskdump"; 84 argv[1] = "-t"; 85 argv[2] = s_taskid; 86 argv[3] = NULL; 86 87 #endif 87 if (rc != EOK) { 88 printf("%s: Error spawning %s (%s).\n", NAME, fname, 89 str_error(rc)); 88 fname = argv[0]; 89 90 printf(NAME ": Executing"); 91 s = argv; 92 while (*s != NULL) { 93 printf(" %s", *s); 94 ++s; 90 95 } 96 putchar('\n'); 97 98 if (!task_spawn(fname, argv)) 99 printf(NAME ": Error spawning taskdump.\n", fname); 91 100 } 92 101
Note:
See TracChangeset
for help on using the changeset viewer.
