Rev 1196 | Rev 1264 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1196 | Rev 1224 | ||
|---|---|---|---|
| Line 456... | Line 456... | ||
| 456 | else if (symaddr == (__address) -1) { |
456 | else if (symaddr == (__address) -1) { |
| 457 | symtab_print_search(argv->buffer); |
457 | symtab_print_search(argv->buffer); |
| 458 | printf("Duplicate symbol, be more specific.\n"); |
458 | printf("Duplicate symbol, be more specific.\n"); |
| 459 | } else { |
459 | } else { |
| 460 | symbol = get_symtab_entry(symaddr); |
460 | symbol = get_symtab_entry(symaddr); |
| 461 | printf("Calling f(): %p: %s\n", symaddr, symbol); |
461 | printf("Calling f(): %.*p: %s\n", sizeof(__address) * 2, symaddr, symbol); |
| 462 | f = (__native (*)(void)) symaddr; |
462 | f = (__native (*)(void)) symaddr; |
| 463 | printf("Result: %p\n", f()); |
463 | printf("Result: %#zx\n", f()); |
| 464 | } |
464 | } |
| 465 | 465 | ||
| 466 | return 1; |
466 | return 1; |
| 467 | } |
467 | } |
| 468 | 468 | ||
| Line 480... | Line 480... | ||
| 480 | else if (symaddr == (__address) -1) { |
480 | else if (symaddr == (__address) -1) { |
| 481 | symtab_print_search(argv->buffer); |
481 | symtab_print_search(argv->buffer); |
| 482 | printf("Duplicate symbol, be more specific.\n"); |
482 | printf("Duplicate symbol, be more specific.\n"); |
| 483 | } else { |
483 | } else { |
| 484 | symbol = get_symtab_entry(symaddr); |
484 | symbol = get_symtab_entry(symaddr); |
| 485 | printf("Calling f(0x%zX): %p: %s\n", arg1, symaddr, symbol); |
485 | printf("Calling f(0x%zX): %.*p: %s\n", arg1, sizeof(__address) * 2, symaddr, symbol); |
| 486 | f = (__native (*)(__native,...)) symaddr; |
486 | f = (__native (*)(__native,...)) symaddr; |
| 487 | printf("Result: %p\n", f(arg1)); |
487 | printf("Result: %#zx\n", f(arg1)); |
| 488 | } |
488 | } |
| 489 | 489 | ||
| 490 | return 1; |
490 | return 1; |
| 491 | } |
491 | } |
| 492 | 492 | ||
| Line 505... | Line 505... | ||
| 505 | else if (symaddr == (__address) -1) { |
505 | else if (symaddr == (__address) -1) { |
| 506 | symtab_print_search(argv->buffer); |
506 | symtab_print_search(argv->buffer); |
| 507 | printf("Duplicate symbol, be more specific.\n"); |
507 | printf("Duplicate symbol, be more specific.\n"); |
| 508 | } else { |
508 | } else { |
| 509 | symbol = get_symtab_entry(symaddr); |
509 | symbol = get_symtab_entry(symaddr); |
| 510 | printf("Calling f(0x%zx,0x%zx): %p: %s\n", |
510 | printf("Calling f(0x%zx,0x%zx): %.*p: %s\n", |
| 511 | arg1, arg2, symaddr, symbol); |
511 | arg1, arg2, sizeof(__address) * 2, symaddr, symbol); |
| 512 | f = (__native (*)(__native,__native,...)) symaddr; |
512 | f = (__native (*)(__native,__native,...)) symaddr; |
| 513 | printf("Result: %p\n", f(arg1, arg2)); |
513 | printf("Result: %#zx\n", f(arg1, arg2)); |
| 514 | } |
514 | } |
| 515 | 515 | ||
| 516 | return 1; |
516 | return 1; |
| 517 | } |
517 | } |
| 518 | 518 | ||
| Line 532... | Line 532... | ||
| 532 | else if (symaddr == (__address) -1) { |
532 | else if (symaddr == (__address) -1) { |
| 533 | symtab_print_search(argv->buffer); |
533 | symtab_print_search(argv->buffer); |
| 534 | printf("Duplicate symbol, be more specific.\n"); |
534 | printf("Duplicate symbol, be more specific.\n"); |
| 535 | } else { |
535 | } else { |
| 536 | symbol = get_symtab_entry(symaddr); |
536 | symbol = get_symtab_entry(symaddr); |
| 537 | printf("Calling f(0x%zx,0x%zx, 0x%zx): %p: %s\n", |
537 | printf("Calling f(0x%zx,0x%zx, 0x%zx): %.*p: %s\n", |
| 538 | arg1, arg2, arg3, symaddr, symbol); |
538 | arg1, arg2, arg3, sizeof(__address) * 2, symaddr, symbol); |
| 539 | f = (__native (*)(__native,__native,__native,...)) symaddr; |
539 | f = (__native (*)(__native,__native,__native,...)) symaddr; |
| 540 | printf("Result: %p\n", f(arg1, arg2, arg3)); |
540 | printf("Result: %#zx\n", f(arg1, arg2, arg3)); |
| 541 | } |
541 | } |
| 542 | 542 | ||
| 543 | return 1; |
543 | return 1; |
| 544 | } |
544 | } |
| 545 | 545 | ||
| Line 596... | Line 596... | ||
| 596 | symtab_print_search(argv->buffer); |
596 | symtab_print_search(argv->buffer); |
| 597 | printf("Duplicate symbol, be more specific.\n"); |
597 | printf("Duplicate symbol, be more specific.\n"); |
| 598 | } else { |
598 | } else { |
| 599 | if (pointer) |
599 | if (pointer) |
| 600 | addr = (__u32 *)(*(__native *)addr); |
600 | addr = (__u32 *)(*(__native *)addr); |
| 601 | printf("Writing 0x%x -> %p\n", arg1, addr); |
601 | printf("Writing 0x%x -> %.*p\n", arg1, sizeof(__address) * 2, addr); |
| 602 | *addr = arg1; |
602 | *addr = arg1; |
| 603 | 603 | ||
| 604 | } |
604 | } |
| 605 | 605 | ||
| 606 | return 1; |
606 | return 1; |