Changeset 371bd7d in mainline for uspace/app/trace/trace.c
- Timestamp:
- 2010-03-27T09:22:17Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 36a75a2
- Parents:
- cd82bb1 (diff), eaf22d4 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - File:
-
- 1 edited
-
uspace/app/trace/trace.c (modified) (16 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/trace/trace.c
rcd82bb1 r371bd7d 43 43 #include <task.h> 44 44 #include <mem.h> 45 #include <str ing.h>45 #include <str.h> 46 46 #include <bool.h> 47 47 #include <loader/loader.h> 48 48 #include <io/console.h> 49 49 #include <io/keycode.h> 50 #include <fibril_sync.h> 50 #include <fibril_synch.h> 51 #include <sys/types.h> 52 #include <sys/typefmt.h> 51 53 52 54 #include <libc.h> … … 159 161 if (rc < 0) { 160 162 printf("Error connecting\n"); 161 printf("ipc_connect_task(% lld) -> %d ", task_id, rc);163 printf("ipc_connect_task(%" PRIdTASKID ") -> %d ", task_id, rc); 162 164 return rc; 163 165 } … … 198 200 printf("Threads:"); 199 201 for (i = 0; i < n_threads; i++) { 200 printf(" [%d] (hash 0x%lx)", 1+i, thread_hash_buf[i]);202 printf(" [%d] (hash %p)", 1+i, thread_hash_buf[i]); 201 203 } 202 204 printf("\ntotal of %u threads\n", tb_needed / sizeof(uintptr_t)); … … 222 224 case V_HASH: 223 225 case V_PTR: 224 printf(" 0x%08lx", val);226 printf("%p", val); 225 227 break; 226 228 … … 275 277 276 278 putchar('('); 277 if (n > 0) printf("% ld", sc_args[0]);279 if (n > 0) printf("%" PRIdSYSARG, sc_args[0]); 278 280 for (i = 1; i < n; i++) { 279 printf(", % ld", sc_args[i]);281 printf(", %" PRIdSYSARG, sc_args[i]); 280 282 } 281 283 putchar(')'); … … 508 510 } 509 511 510 printf("Start tracing thread [%d] (hash 0x%lx).\n", thread_id, thread_hash);512 printf("Start tracing thread [%d] (hash %p).\n", thread_id, thread_hash); 511 513 512 514 while (!abort_trace) { … … 552 554 break; 553 555 case UDEBUG_EVENT_THREAD_E: 554 printf("Thread 0x%lxexited.\n", val0);556 printf("Thread %p 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; … … 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; … … 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 %" PRIdTASKID ".\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 %" PRIdTASKID ".\n", task_id); 979 991 980 992 if (task_ldr != NULL)
Note:
See TracChangeset
for help on using the changeset viewer.
