Changes in uspace/app/trace/trace.c [f019cc07:ffa2c8ef] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/trace/trace.c
rf019cc07 rffa2c8ef 36 36 #include <stdlib.h> 37 37 #include <unistd.h> 38 #include <ipc/ipc.h>39 38 #include <fibril.h> 40 39 #include <errno.h> … … 43 42 #include <task.h> 44 43 #include <mem.h> 45 #include <str ing.h>44 #include <str.h> 46 45 #include <bool.h> 47 46 #include <loader/loader.h> 48 47 #include <io/console.h> 49 48 #include <io/keycode.h> 50 #include <fibril_sync.h> 49 #include <fibril_synch.h> 50 #include <sys/types.h> 51 #include <sys/typefmt.h> 51 52 52 53 #include <libc.h> … … 147 148 int rc; 148 149 149 rc = ipc_connect_kbox(task_id);150 rc = async_connect_kbox(task_id); 150 151 151 152 if (rc == ENOTSUP) { … … 159 160 if (rc < 0) { 160 161 printf("Error connecting\n"); 161 printf("ipc_connect_task(% lld) -> %d ", task_id, rc);162 printf("ipc_connect_task(%" PRIu64 ") -> %d ", task_id, rc); 162 163 return rc; 163 164 } … … 198 199 printf("Threads:"); 199 200 for (i = 0; i < n_threads; i++) { 200 printf(" [%d] (hash 0x%lx)", 1+i,thread_hash_buf[i]);201 } 202 printf("\ntotal of % u threads\n", tb_needed / sizeof(uintptr_t));201 printf(" [%d] (hash %p)", 1 + i, (void *) thread_hash_buf[i]); 202 } 203 printf("\ntotal of %zu threads\n", tb_needed / sizeof(uintptr_t)); 203 204 204 205 return 0; … … 222 223 case V_HASH: 223 224 case V_PTR: 224 printf(" 0x%08lx",val);225 printf("%p", (void *) val); 225 226 break; 226 227 … … 246 247 case V_CHAR: 247 248 if (sval >= 0x20 && sval < 0x7f) { 248 printf("'%c'", sval);249 printf("'%c'", (char) sval); 249 250 } else { 250 251 switch (sval) { … … 255 256 case '\t': printf("'\\t'"); break; 256 257 case '\\': printf("'\\\\'"); break; 257 default: printf("'\\x%02 lX'", val); break;258 default: printf("'\\x%02" PRIxn "'", val); break; 258 259 } 259 260 } … … 275 276 276 277 putchar('('); 277 if (n > 0) printf("% ld", sc_args[0]);278 if (n > 0) printf("%" PRIun, sc_args[0]); 278 279 for (i = 1; i < n; i++) { 279 printf(", % ld", sc_args[i]);280 printf(", %" PRIun, sc_args[i]); 280 281 } 281 282 putchar(')'); … … 285 286 { 286 287 ipc_call_t call; 287 ipcarg_t phoneid;288 sysarg_t phoneid; 288 289 289 290 if (sc_rc == (sysarg_t) IPC_CALLRET_FATAL || … … 293 294 phoneid = sc_args[0]; 294 295 295 IPC_SET_ METHOD(call, sc_args[1]);296 IPC_SET_IMETHOD(call, sc_args[1]); 296 297 IPC_SET_ARG1(call, sc_args[2]); 297 298 IPC_SET_ARG2(call, sc_args[3]); … … 329 330 phoneidx = sc_args[0]; 330 331 331 IPC_SET_ METHOD(question, sc_args[1]);332 IPC_SET_IMETHOD(question, sc_args[1]); 332 333 IPC_SET_ARG1(question, sc_args[2]); 333 334 IPC_SET_ARG2(question, sc_args[3]); … … 487 488 { 488 489 async_serialize_start(); 489 printf("New thread, hash 0x%lx\n",hash);490 printf("New thread, hash %p\n", (void *) hash); 490 491 async_serialize_end(); 491 492 … … 508 509 } 509 510 510 printf("Start tracing thread [%d] (hash 0x%lx).\n", thread_id, thread_hash); 511 printf("Start tracing thread [%u] (hash %p).\n", 512 thread_id, (void *) thread_hash); 511 513 512 514 while (!abort_trace) { … … 514 516 fibril_mutex_lock(&state_lock); 515 517 if (paused) { 516 printf("Thread [% d] paused. Press R to resume.\n",518 printf("Thread [%u] paused. Press R to resume.\n", 517 519 thread_id); 518 520 … … 520 522 fibril_condvar_wait(&state_cv, &state_lock); 521 523 522 printf("Thread [% d] resumed.\n", thread_id);524 printf("Thread [%u] resumed.\n", thread_id); 523 525 } 524 526 fibril_mutex_unlock(&state_lock); … … 552 554 break; 553 555 case UDEBUG_EVENT_THREAD_E: 554 printf("Thread 0x%lxexited.\n", val0);556 printf("Thread %" PRIun " exited.\n", val0); 555 557 fibril_mutex_lock(&state_lock); 556 558 abort_trace = true; … … 583 585 } 584 586 585 static loader_t *preload_task(const char *path, char * const argv[],587 static loader_t *preload_task(const char *path, char **argv, 586 588 task_id_t *task_id) 587 589 { … … 589 591 int rc; 590 592 591 /* Spawn a program loader */ 593 /* Spawn a program loader */ 592 594 ldr = loader_connect(); 593 595 if (ldr == NULL) … … 605 607 606 608 /* Send arguments */ 607 rc = loader_set_args(ldr, argv);609 rc = loader_set_args(ldr, (const char **) argv); 608 610 if (rc != EOK) 609 611 goto error; … … 742 744 abort_trace = true; 743 745 udebug_end(phoneid); 744 ipc_hangup(phoneid);746 async_hangup(phoneid); 745 747 746 748 ipcp_cleanup(); … … 868 870 } 869 871 870 static display_mask_t parse_display_mask(c har *text)872 static display_mask_t parse_display_mask(const char *text) 871 873 { 872 874 display_mask_t dm; 873 char *c; 874 875 c = text; 876 875 const char *c = text; 876 877 877 while (*c) { 878 878 switch (*c) { 879 case 't': dm = dm | DM_THREAD; break; 880 case 's': dm = dm | DM_SYSCALL; break; 881 case 'i': dm = dm | DM_IPC; break; 882 case 'p': dm = dm | DM_SYSTEM | DM_USER; break; 879 case 't': 880 dm = dm | DM_THREAD; 881 break; 882 case 's': 883 dm = dm | DM_SYSCALL; 884 break; 885 case 'i': 886 dm = dm | DM_IPC; 887 break; 888 case 'p': 889 dm = dm | DM_SYSTEM | DM_USER; 890 break; 883 891 default: 884 892 printf("Unexpected event type '%c'.\n", *c); 885 893 exit(1); 886 894 } 887 895 888 896 ++c; 889 897 } 890 898 891 899 return dm; 892 900 } … … 894 902 static int parse_args(int argc, char *argv[]) 895 903 { 896 char *arg;897 904 char *err_p; 898 905 899 906 task_id = 0; 900 907 901 --argc; ++argv; 908 --argc; 909 ++argv; 902 910 903 911 while (argc > 0) { 904 arg = *argv;912 char *arg = *argv; 905 913 if (arg[0] == '+') { 906 914 display_mask = parse_display_mask(&arg[1]); … … 908 916 if (arg[1] == 't') { 909 917 /* Trace an already running task */ 910 --argc; ++argv; 918 --argc; 919 ++argv; 911 920 task_id = strtol(*argv, &err_p, 10); 912 921 task_ldr = NULL; … … 918 927 } 919 928 } else { 920 printf("Uknown option '% s'\n", arg[0]);929 printf("Uknown option '%c'\n", arg[0]); 921 930 print_syntax(); 922 931 return -1; … … 925 934 break; 926 935 } 927 928 --argc; ++argv; 936 937 --argc; 938 ++argv; 929 939 } 930 940 931 941 if (task_id != 0) { 932 if (argc == 0) return 0; 942 if (argc == 0) 943 return 0; 933 944 printf("Extra arguments\n"); 934 945 print_syntax(); … … 944 955 /* Preload the specified program file. */ 945 956 printf("Spawning '%s' with arguments:\n", *argv); 946 { 947 char **cp = argv; 948 while (*cp) printf("'%s'\n", *cp++); 949 } 957 958 char **cp = argv; 959 while (*cp) 960 printf("'%s'\n", *cp++); 961 950 962 task_ldr = preload_task(*argv, argv, &task_id); 951 963 task_wait_for = true; … … 972 984 rc = connect_task(task_id); 973 985 if (rc < 0) { 974 printf("Failed connecting to task % lld.\n", task_id);986 printf("Failed connecting to task %" PRIu64 ".\n", task_id); 975 987 return 1; 976 988 } 977 989 978 printf("Connected to task % lld.\n", task_id);990 printf("Connected to task %" PRIu64 ".\n", task_id); 979 991 980 992 if (task_ldr != NULL)
Note:
See TracChangeset
for help on using the changeset viewer.