Rev 1072 | Rev 1224 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1072 | Rev 1196 | ||
---|---|---|---|
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(): 0x%p: %s\n", symaddr, symbol); |
461 | printf("Calling f(): %p: %s\n", symaddr, symbol); |
462 | f = (__native (*)(void)) symaddr; |
462 | f = (__native (*)(void)) symaddr; |
463 | printf("Result: 0x%p\n", f()); |
463 | printf("Result: %p\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%x): 0x%p: %s\n", arg1, symaddr, symbol); |
485 | printf("Calling f(0x%zX): %p: %s\n", arg1, symaddr, symbol); |
486 | f = (__native (*)(__native,...)) symaddr; |
486 | f = (__native (*)(__native,...)) symaddr; |
487 | printf("Result: 0x%p\n", f(arg1)); |
487 | printf("Result: %p\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%x,0x%x): 0x%p: %s\n", |
510 | printf("Calling f(0x%zx,0x%zx): %p: %s\n", |
511 | arg1, arg2, symaddr, symbol); |
511 | arg1, arg2, symaddr, symbol); |
512 | f = (__native (*)(__native,__native,...)) symaddr; |
512 | f = (__native (*)(__native,__native,...)) symaddr; |
513 | printf("Result: 0x%p\n", f(arg1, arg2)); |
513 | printf("Result: %p\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%x,0x%x, 0x%x): 0x%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, symaddr, symbol); |
539 | f = (__native (*)(__native,__native,__native,...)) symaddr; |
539 | f = (__native (*)(__native,__native,__native,...)) symaddr; |
540 | printf("Result: 0x%p\n", f(arg1, arg2, arg3)); |
540 | printf("Result: %p\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 -> 0x%p\n", arg1, addr); |
601 | printf("Writing 0x%x -> %p\n", arg1, addr); |
602 | *addr = arg1; |
602 | *addr = arg1; |
603 | 603 | ||
604 | } |
604 | } |
605 | 605 | ||
606 | return 1; |
606 | return 1; |