Changeset 102740 in vbox
- Timestamp:
- Jan 1, 2024 2:13:55 AM (11 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/IEMAllDbg.cpp
r100673 r102740 34 34 #include <VBox/vmm/iem.h> 35 35 #include <VBox/vmm/cpum.h> 36 #include <VBox/vmm/dbgf.h> 36 37 #include <VBox/vmm/pgm.h> 37 38 #include "IEMInternal.h" … … 39 40 #include <VBox/log.h> 40 41 #include <iprt/errcore.h> 42 #include <iprt/string.h> 41 43 42 44 … … 573 575 574 576 577 static void iemLogSyscallLinuxX86Int80(PVMCPUCC pVCpu) 578 { 579 uint32_t fStrArgs = 0; 580 const char *pszName; 581 int cArgs; 582 uint32_t const uSysCall = pVCpu->cpum.GstCtx.eax; 583 switch (uSysCall) 584 { 585 case 0: cArgs = -1; pszName = "restart_syscall"; break; 586 case 1: cArgs = 1; pszName = "exit"; break; 587 case 2: cArgs = -1; pszName = "fork"; break; 588 case 3: cArgs = 3; pszName = "read"; break; 589 case 4: cArgs = 3; pszName = "write"; break; 590 case 5: cArgs = 3; pszName = "open"; fStrArgs = 1; break; 591 case 6: cArgs = 1; pszName = "close"; break; 592 case 7: cArgs = 3; pszName = "waitpid"; break; 593 case 8: cArgs = 2; pszName = "creat"; break; 594 case 9: cArgs = 2; pszName = "link"; fStrArgs = 1|2; break; 595 case 10: cArgs = 1; pszName = "unlink"; fStrArgs = 1; break; 596 case 11: cArgs = 3; pszName = "execve"; fStrArgs = 1; break; 597 case 12: cArgs = 1; pszName = "chdir"; fStrArgs = 1; break; 598 case 13: cArgs = 1; pszName = "time"; break; 599 case 14: cArgs = 3; pszName = "mknod"; fStrArgs = 1; break; 600 case 15: cArgs = 2; pszName = "chmod"; fStrArgs = 1; break; 601 case 16: cArgs = 3; pszName = "lchown"; fStrArgs = 1; break; 602 case 17: cArgs = -1; pszName = "break;"; break; 603 case 18: cArgs = 2; pszName = "oldstat"; fStrArgs = 1; break; 604 case 19: cArgs = 3; pszName = "lseek"; break; 605 case 20: cArgs = -1; pszName = "getpid"; break; 606 case 21: cArgs = 5; pszName = "mount"; fStrArgs = 1|2|4; break; 607 case 22: cArgs = 1; pszName = "umount"; fStrArgs = 1; break; 608 case 23: cArgs = 1; pszName = "setuid"; break; 609 case 24: cArgs = -1; pszName = "getuid"; break; 610 case 25: cArgs = 1; pszName = "stime"; break; 611 case 26: cArgs = 4; pszName = "ptrace"; break; 612 case 27: cArgs = 1; pszName = "alarm"; break; 613 case 28: cArgs = 2; pszName = "oldfstat"; break; 614 case 29: cArgs = -1; pszName = "pause"; break; 615 case 30: cArgs = 2; pszName = "utime"; fStrArgs = 1; break; 616 case 31: cArgs = -1; pszName = "stty"; break; 617 case 32: cArgs = -1; pszName = "gtty"; break; 618 case 33: cArgs = 2; pszName = "access"; fStrArgs = 1; break; 619 case 34: cArgs = 1; pszName = "nice"; break; 620 case 35: cArgs = -1; pszName = "ftime"; break; 621 case 36: cArgs = -1; pszName = "sync"; break; 622 case 37: cArgs = 2; pszName = "kill"; break; 623 case 38: cArgs = 2; pszName = "rename"; fStrArgs = 1|2; break; 624 case 39: cArgs = 2; pszName = "mkdir"; fStrArgs = 1; break; 625 case 40: cArgs = 1; pszName = "rmdir"; fStrArgs = 1; break; 626 case 41: cArgs = 1; pszName = "dup"; break; 627 case 42: cArgs = 1; pszName = "pipe"; break; 628 case 43: cArgs = 1; pszName = "times"; fStrArgs = 1; break; 629 case 44: cArgs = -1; pszName = "prof"; break; 630 case 45: cArgs = 1; pszName = "brk"; break; 631 case 46: cArgs = 1; pszName = "setgid"; break; 632 case 47: cArgs = -1; pszName = "getgid"; break; 633 case 48: cArgs = 2; pszName = "signal"; break; 634 case 49: cArgs = -1; pszName = "geteuid"; break; 635 case 50: cArgs = -1; pszName = "getegid"; break; 636 case 51: cArgs = 1; pszName = "acct"; break; 637 case 52: cArgs = 2; pszName = "umount2"; fStrArgs = 1; break; 638 case 53: cArgs = -1; pszName = "lock"; break; 639 case 54: cArgs = 3; pszName = "ioctl"; break; 640 case 55: cArgs = 3; pszName = "fcntl"; break; 641 case 56: cArgs = -1; pszName = "mpx"; break; 642 case 57: cArgs = 2; pszName = "setpgid"; break; 643 case 58: cArgs = -1; pszName = "ulimit"; break; 644 case 59: cArgs = 1; pszName = "oldolduname"; break; 645 case 60: cArgs = 1; pszName = "umask"; break; 646 case 61: cArgs = 1; pszName = "chroot"; fStrArgs = 1; break; 647 case 62: cArgs = 2; pszName = "ustat"; break; 648 case 63: cArgs = 2; pszName = "dup2"; break; 649 case 64: cArgs = -1; pszName = "getppid"; break; 650 case 65: cArgs = -1; pszName = "getpgrp"; break; 651 case 66: cArgs = -1; pszName = "setsid"; break; 652 case 67: cArgs = 3; pszName = "sigaction"; break; 653 case 68: cArgs = -1; pszName = "sgetmask"; break; 654 case 69: cArgs = 1; pszName = "ssetmask"; break; 655 case 70: cArgs = 2; pszName = "setreuid"; break; 656 case 71: cArgs = 2; pszName = "setregid"; break; 657 case 72: cArgs = 1; pszName = "sigsuspend"; break; 658 case 73: cArgs = 1; pszName = "sigpending"; break; 659 case 74: cArgs = 2; pszName = "sethostname"; fStrArgs = 1; break; 660 case 75: cArgs = 2; pszName = "setrlimit"; break; 661 case 76: cArgs = 2; pszName = "getrlimit"; break; 662 case 77: cArgs = 2; pszName = "getrusage"; break; 663 case 78: cArgs = 2; pszName = "gettimeofday"; break; 664 case 79: cArgs = 2; pszName = "settimeofday"; break; 665 case 80: cArgs = 2; pszName = "getgroups"; break; 666 case 81: cArgs = 2; pszName = "setgroups"; break; 667 case 82: cArgs = 1; pszName = "select"; break; 668 case 83: cArgs = 2; pszName = "symlink"; fStrArgs = 1|2; break; 669 case 84: cArgs = 2; pszName = "oldlstat"; fStrArgs = 1; break; 670 case 85: cArgs = 3; pszName = "readlink"; fStrArgs = 1; break; 671 case 86: cArgs = 1; pszName = "uselib"; break; 672 case 87: cArgs = 2; pszName = "swapon"; fStrArgs = 1; break; 673 case 88: cArgs = 4; pszName = "reboot"; break; 674 case 89: cArgs = 3; pszName = "readdir"; break; 675 case 90: cArgs = 1; pszName = "mmap"; break; 676 case 91: cArgs = 2; pszName = "munmap"; break; 677 case 92: cArgs = 2; pszName = "truncate"; fStrArgs = 1; break; 678 case 93: cArgs = 2; pszName = "ftruncate"; break; 679 case 94: cArgs = 2; pszName = "fchmod"; break; 680 case 95: cArgs = 3; pszName = "fchown"; break; 681 case 96: cArgs = 2; pszName = "getpriority"; break; 682 case 97: cArgs = 3; pszName = "setpriority"; break; 683 case 98: cArgs = -1; pszName = "profil"; break; 684 case 99: cArgs = 2; pszName = "statfs"; fStrArgs = 1; break; 685 case 100: cArgs = 2; pszName = "fstatfs"; break; 686 case 101: cArgs = 3; pszName = "ioperm"; break; 687 case 102: cArgs = 2; pszName = "socketcall"; break; 688 case 103: cArgs = 3; pszName = "syslog"; break; 689 case 104: cArgs = 3; pszName = "setitimer"; break; 690 case 105: cArgs = 2; pszName = "getitimer"; break; 691 case 106: cArgs = 2; pszName = "stat"; fStrArgs = 1; break; 692 case 107: cArgs = 2; pszName = "lstat"; fStrArgs = 1; break; 693 case 108: cArgs = 2; pszName = "fstat"; break; 694 case 109: cArgs = 1; pszName = "olduname"; break; 695 case 110: cArgs = 1; pszName = "iopl"; break; 696 case 111: cArgs = -1; pszName = "vhangup"; break; 697 case 112: cArgs = -1; pszName = "idle"; break; 698 case 113: cArgs = 1; pszName = "vm86old"; break; 699 case 114: cArgs = 4; pszName = "wait4"; break; 700 case 115: cArgs = 1; pszName = "swapoff"; fStrArgs = 1; break; 701 case 116: cArgs = 1; pszName = "sysinfo"; break; 702 case 117: cArgs = 6; pszName = "ipc"; break; 703 case 118: cArgs = 1; pszName = "fsync"; break; 704 case 119: cArgs = -1; pszName = "sigreturn"; break; 705 case 120: cArgs = 5; pszName = "clone"; break; 706 case 121: cArgs = 2; pszName = "setdomainname"; fStrArgs = 1; break; 707 case 122: cArgs = 1; pszName = "uname"; break; 708 case 123: cArgs = 3; pszName = "modify_ldt"; break; 709 case 124: cArgs = 1; pszName = "adjtimex"; break; 710 case 125: cArgs = 3; pszName = "mprotect"; break; 711 case 126: cArgs = 3; pszName = "sigprocmask"; break; 712 case 127: cArgs = -1; pszName = "create_module"; fStrArgs = 1; break; 713 case 128: cArgs = 3; pszName = "init_module"; break; 714 case 129: cArgs = 2; pszName = "delete_module"; fStrArgs = 1; break; 715 case 130: cArgs = -1; pszName = "get_kernel_syms"; break; 716 case 131: cArgs = 4; pszName = "quotactl"; break; 717 case 132: cArgs = 1; pszName = "getpgid"; break; 718 case 133: cArgs = 1; pszName = "fchdir"; break; 719 case 134: cArgs = -1; pszName = "bdflush"; break; 720 case 135: cArgs = 3; pszName = "sysfs"; break; 721 case 136: cArgs = 1; pszName = "personality"; break; 722 case 137: cArgs = -1; pszName = "afs_syscall"; break; 723 case 138: cArgs = 1; pszName = "setfsuid"; break; 724 case 139: cArgs = 1; pszName = "setfsgid"; break; 725 case 140: cArgs = 5; pszName = "_llseek"; break; 726 case 141: cArgs = 3; pszName = "getdents"; break; 727 case 142: cArgs = 5; pszName = "_newselect"; break; 728 case 143: cArgs = 2; pszName = "flock"; break; 729 case 144: cArgs = 3; pszName = "msync"; break; 730 case 145: cArgs = 3; pszName = "readv"; break; 731 case 146: cArgs = 3; pszName = "writev"; break; 732 case 147: cArgs = 1; pszName = "getsid"; break; 733 case 148: cArgs = 1; pszName = "fdatasync"; break; 734 case 149: cArgs = -1; pszName = "_sysctl"; break; 735 case 150: cArgs = 2; pszName = "mlock"; break; 736 case 151: cArgs = 2; pszName = "munlock"; break; 737 case 152: cArgs = 1; pszName = "mlockall"; break; 738 case 153: cArgs = -1; pszName = "munlockall"; break; 739 case 154: cArgs = 2; pszName = "sched_setparam"; break; 740 case 155: cArgs = 2; pszName = "sched_getparam"; break; 741 case 156: cArgs = 3; pszName = "sched_setscheduler"; break; 742 case 157: cArgs = 1; pszName = "sched_getscheduler"; break; 743 case 158: cArgs = -1; pszName = "sched_yield"; break; 744 case 159: cArgs = 1; pszName = "sched_get_priority_max"; break; 745 case 160: cArgs = 1; pszName = "sched_get_priority_min"; break; 746 case 161: cArgs = 2; pszName = "sched_rr_get_interval"; break; 747 case 162: cArgs = 2; pszName = "nanosleep"; break; 748 case 163: cArgs = 5; pszName = "mremap"; break; 749 case 164: cArgs = 3; pszName = "setresuid"; break; 750 case 165: cArgs = 3; pszName = "getresuid"; break; 751 case 166: cArgs = 2; pszName = "vm86"; break; 752 case 167: cArgs = -1; pszName = "query_module"; break; 753 case 168: cArgs = 3; pszName = "poll"; break; 754 case 169: cArgs = -1; pszName = "nfsservctl"; break; 755 case 170: cArgs = 3; pszName = "setresgid"; break; 756 case 171: cArgs = 3; pszName = "getresgid"; break; 757 case 172: cArgs = 5; pszName = "prctl"; break; 758 case 173: cArgs = -1; pszName = "rt_sigreturn"; break; 759 case 174: cArgs = 4; pszName = "rt_sigaction"; break; 760 case 175: cArgs = 4; pszName = "rt_sigprocmask"; break; 761 case 176: cArgs = 2; pszName = "rt_sigpending"; break; 762 case 177: cArgs = 4; pszName = "rt_sigtimedwait"; break; 763 case 178: cArgs = 3; pszName = "rt_sigqueueinfo"; break; 764 case 179: cArgs = 2; pszName = "rt_sigsuspend"; break; 765 case 180: cArgs = 5; pszName = "pread64"; break; 766 case 181: cArgs = 5; pszName = "pwrite64"; break; 767 case 182: cArgs = 3; pszName = "chown"; break; 768 case 183: cArgs = 2; pszName = "getcwd"; break; 769 case 184: cArgs = 2; pszName = "capget"; break; 770 case 185: cArgs = 2; pszName = "capset"; break; 771 case 186: cArgs = 2; pszName = "sigaltstack"; break; 772 case 187: cArgs = 4; pszName = "sendfile"; break; 773 case 188: cArgs = -1; pszName = "getpmsg"; break; 774 case 189: cArgs = -1; pszName = "putpmsg"; break; 775 case 190: cArgs = -1; pszName = "vfork"; break; 776 case 191: cArgs = 2; pszName = "ugetrlimit"; break; 777 case 192: cArgs = 6; pszName = "mmap2"; break; 778 case 193: cArgs = 3; pszName = "truncate64"; break; 779 case 194: cArgs = 3; pszName = "ftruncate64"; break; 780 case 195: cArgs = 2; pszName = "stat64"; break; 781 case 196: cArgs = 2; pszName = "lstat64"; break; 782 case 197: cArgs = 2; pszName = "fstat64"; break; 783 case 198: cArgs = 3; pszName = "lchown32"; break; 784 case 199: cArgs = -1; pszName = "getuid32"; break; 785 case 200: cArgs = -1; pszName = "getgid32"; break; 786 case 201: cArgs = -1; pszName = "geteuid32"; break; 787 case 202: cArgs = -1; pszName = "getegid32"; break; 788 case 203: cArgs = 2; pszName = "setreuid32"; break; 789 case 204: cArgs = 2; pszName = "setregid32"; break; 790 case 205: cArgs = 2; pszName = "getgroups32"; break; 791 case 206: cArgs = 2; pszName = "setgroups32"; break; 792 case 207: cArgs = 3; pszName = "fchown32"; break; 793 case 208: cArgs = 3; pszName = "setresuid32"; break; 794 case 209: cArgs = 3; pszName = "getresuid32"; break; 795 case 210: cArgs = 3; pszName = "setresgid32"; break; 796 case 211: cArgs = 3; pszName = "getresgid32"; break; 797 case 212: cArgs = 3; pszName = "chown32"; break; 798 case 213: cArgs = 1; pszName = "setuid32"; break; 799 case 214: cArgs = 1; pszName = "setgid32"; break; 800 case 215: cArgs = 1; pszName = "setfsuid32"; break; 801 case 216: cArgs = 1; pszName = "setfsgid32"; break; 802 case 217: cArgs = 2; pszName = "pivot_root"; break; 803 case 218: cArgs = 3; pszName = "mincore"; break; 804 case 219: cArgs = 3; pszName = "madvise"; break; 805 case 220: cArgs = 3; pszName = "getdents64"; break; 806 case 221: cArgs = 3; pszName = "fcntl64"; break; 807 case 224: cArgs = -1; pszName = "gettid"; break; 808 case 225: cArgs = 4; pszName = "readahead"; break; 809 case 226: cArgs = 5; pszName = "setxattr"; break; 810 case 227: cArgs = 5; pszName = "lsetxattr"; break; 811 case 228: cArgs = 5; pszName = "fsetxattr"; break; 812 case 229: cArgs = 4; pszName = "getxattr"; break; 813 case 230: cArgs = 4; pszName = "lgetxattr"; break; 814 case 231: cArgs = 4; pszName = "fgetxattr"; break; 815 case 232: cArgs = 3; pszName = "listxattr"; break; 816 case 233: cArgs = 3; pszName = "llistxattr"; break; 817 case 234: cArgs = 3; pszName = "flistxattr"; break; 818 case 235: cArgs = 2; pszName = "removexattr"; break; 819 case 236: cArgs = 2; pszName = "lremovexattr"; break; 820 case 237: cArgs = 2; pszName = "fremovexattr"; break; 821 case 238: cArgs = 2; pszName = "tkill"; break; 822 case 239: cArgs = 4; pszName = "sendfile64"; break; 823 case 240: cArgs = 6; pszName = "futex"; break; 824 case 241: cArgs = 3; pszName = "sched_setaffinity"; break; 825 case 242: cArgs = 3; pszName = "sched_getaffinity"; break; 826 case 243: cArgs = 1; pszName = "set_thread_area"; break; 827 case 244: cArgs = 1; pszName = "get_thread_area"; break; 828 case 245: cArgs = 2; pszName = "io_setup"; break; 829 case 246: cArgs = 1; pszName = "io_destroy"; break; 830 case 247: cArgs = 5; pszName = "io_getevents"; break; 831 case 248: cArgs = 3; pszName = "io_submit"; break; 832 case 249: cArgs = 3; pszName = "io_cancel"; break; 833 case 250: cArgs = 5; pszName = "fadvise64"; break; 834 case 252: cArgs = 1; pszName = "exit_group"; break; 835 case 253: cArgs = -1; pszName = "lookup_dcookie"; break; 836 case 254: cArgs = 1; pszName = "epoll_create"; break; 837 case 255: cArgs = 4; pszName = "epoll_ctl"; break; 838 case 256: cArgs = 4; pszName = "epoll_wait"; break; 839 case 257: cArgs = 5; pszName = "remap_file_pages"; break; 840 case 258: cArgs = 1; pszName = "set_tid_address"; break; 841 case 259: cArgs = 3; pszName = "timer_create"; break; 842 case 260: cArgs = 4; pszName = "timer_settime"; break; 843 case 261: cArgs = 2; pszName = "timer_gettime"; break; 844 case 262: cArgs = 1; pszName = "timer_getoverrun"; break; 845 case 263: cArgs = 1; pszName = "timer_delete"; break; 846 case 264: cArgs = 2; pszName = "clock_settime"; break; 847 case 265: cArgs = 2; pszName = "clock_gettime"; break; 848 case 266: cArgs = 2; pszName = "clock_getres"; break; 849 case 267: cArgs = 4; pszName = "clock_nanosleep"; break; 850 case 268: cArgs = 3; pszName = "statfs64"; break; 851 case 269: cArgs = 3; pszName = "fstatfs64"; break; 852 case 270: cArgs = 3; pszName = "tgkill"; break; 853 case 271: cArgs = 2; pszName = "utimes"; break; 854 case 272: cArgs = 6; pszName = "fadvise64_64"; break; 855 case 273: cArgs = -1; pszName = "vserver"; break; 856 case 274: cArgs = 6; pszName = "mbind"; break; 857 case 275: cArgs = 5; pszName = "get_mempolicy"; break; 858 case 276: cArgs = 3; pszName = "set_mempolicy"; break; 859 case 277: cArgs = 4; pszName = "mq_open"; break; 860 case 278: cArgs = 1; pszName = "mq_unlink"; break; 861 case 279: cArgs = 5; pszName = "mq_timedsend"; break; 862 case 280: cArgs = 5; pszName = "mq_timedreceive"; break; 863 case 281: cArgs = 2; pszName = "mq_notify"; break; 864 case 282: cArgs = 3; pszName = "mq_getsetattr"; break; 865 case 283: cArgs = 4; pszName = "kexec_load"; break; 866 case 284: cArgs = 5; pszName = "waitid"; break; 867 case 286: cArgs = 5; pszName = "add_key"; break; 868 case 287: cArgs = 4; pszName = "request_key"; break; 869 case 288: cArgs = 5; pszName = "keyctl"; break; 870 case 289: cArgs = 3; pszName = "ioprio_set"; break; 871 case 290: cArgs = 2; pszName = "ioprio_get"; break; 872 case 291: cArgs = -1; pszName = "inotify_init"; break; 873 case 292: cArgs = 3; pszName = "inotify_add_watch"; break; 874 case 293: cArgs = 2; pszName = "inotify_rm_watch"; break; 875 case 294: cArgs = 4; pszName = "migrate_pages"; break; 876 case 295: cArgs = 4; pszName = "openat"; break; 877 case 296: cArgs = 3; pszName = "mkdirat"; break; 878 case 297: cArgs = 4; pszName = "mknodat"; break; 879 case 298: cArgs = 5; pszName = "fchownat"; break; 880 case 299: cArgs = 3; pszName = "futimesat"; break; 881 case 300: cArgs = 4; pszName = "fstatat64"; break; 882 case 301: cArgs = 3; pszName = "unlinkat"; break; 883 case 302: cArgs = 4; pszName = "renameat"; break; 884 case 303: cArgs = 5; pszName = "linkat"; break; 885 case 304: cArgs = 3; pszName = "symlinkat"; break; 886 case 305: cArgs = 4; pszName = "readlinkat"; break; 887 case 306: cArgs = 3; pszName = "fchmodat"; break; 888 case 307: cArgs = 3; pszName = "faccessat"; break; 889 case 308: cArgs = 6; pszName = "pselect6"; break; 890 case 309: cArgs = 5; pszName = "ppoll"; break; 891 case 310: cArgs = 1; pszName = "unshare"; break; 892 case 311: cArgs = 2; pszName = "set_robust_list"; break; 893 case 312: cArgs = 3; pszName = "get_robust_list"; break; 894 case 313: cArgs = 6; pszName = "splice"; break; 895 case 314: cArgs = 6; pszName = "sync_file_range"; break; 896 case 315: cArgs = 4; pszName = "tee"; break; 897 case 316: cArgs = 4; pszName = "vmsplice"; break; 898 case 317: cArgs = 6; pszName = "move_pages"; break; 899 case 318: cArgs = 3; pszName = "getcpu"; break; 900 case 319: cArgs = 6; pszName = "epoll_pwait"; break; 901 case 320: cArgs = 4; pszName = "utimensat"; break; 902 case 321: cArgs = 3; pszName = "signalfd"; break; 903 case 322: cArgs = 2; pszName = "timerfd_create"; break; 904 case 323: cArgs = 1; pszName = "eventfd"; break; 905 case 324: cArgs = 6; pszName = "fallocate"; break; 906 case 325: cArgs = 4; pszName = "timerfd_settime"; break; 907 case 326: cArgs = 2; pszName = "timerfd_gettime"; break; 908 case 327: cArgs = 4; pszName = "signalfd4"; break; 909 case 328: cArgs = 2; pszName = "eventfd2"; break; 910 case 329: cArgs = 1; pszName = "epoll_create1"; break; 911 case 330: cArgs = 3; pszName = "dup3"; break; 912 case 331: cArgs = 2; pszName = "pipe2"; break; 913 case 332: cArgs = 1; pszName = "inotify_init1"; break; 914 case 333: cArgs = 5; pszName = "preadv"; break; 915 case 334: cArgs = 5; pszName = "pwritev"; break; 916 case 335: cArgs = 4; pszName = "rt_tgsigqueueinfo"; break; 917 case 336: cArgs = 5; pszName = "perf_event_open"; break; 918 case 337: cArgs = 5; pszName = "recvmmsg"; break; 919 case 338: cArgs = 2; pszName = "fanotify_init"; break; 920 case 339: cArgs = 5; pszName = "fanotify_mark"; break; 921 case 340: cArgs = 4; pszName = "prlimit64"; break; 922 case 341: cArgs = 5; pszName = "name_to_handle_at"; break; 923 case 342: cArgs = 3; pszName = "open_by_handle_at"; break; 924 case 343: cArgs = 2; pszName = "clock_adjtime"; break; 925 case 344: cArgs = 1; pszName = "syncfs"; break; 926 case 345: cArgs = 4; pszName = "sendmmsg"; break; 927 case 346: cArgs = 2; pszName = "setns"; break; 928 case 347: cArgs = 6; pszName = "process_vm_readv"; break; 929 case 348: cArgs = 6; pszName = "process_vm_writev"; break; 930 case 349: cArgs = 5; pszName = "kcmp"; break; 931 case 350: cArgs = 3; pszName = "finit_module"; break; 932 case 351: cArgs = 3; pszName = "sched_setattr"; break; 933 case 352: cArgs = 4; pszName = "sched_getattr"; break; 934 case 353: cArgs = 5; pszName = "renameat2"; break; 935 case 354: cArgs = 3; pszName = "seccomp"; break; 936 case 355: cArgs = 3; pszName = "getrandom"; break; 937 case 356: cArgs = 2; pszName = "memfd_create"; break; 938 case 357: cArgs = 3; pszName = "bpf"; break; 939 case 358: cArgs = 5; pszName = "execveat"; break; 940 case 359: cArgs = 3; pszName = "socket"; break; 941 case 360: cArgs = 4; pszName = "socketpair"; break; 942 case 361: cArgs = 3; pszName = "bind"; break; 943 case 362: cArgs = 3; pszName = "connect"; break; 944 case 363: cArgs = 2; pszName = "listen"; break; 945 case 364: cArgs = 4; pszName = "accept4"; break; 946 case 365: cArgs = 5; pszName = "getsockopt"; break; 947 case 366: cArgs = 5; pszName = "setsockopt"; break; 948 case 367: cArgs = 3; pszName = "getsockname"; break; 949 case 368: cArgs = 3; pszName = "getpeername"; break; 950 case 369: cArgs = 6; pszName = "sendto"; break; 951 case 370: cArgs = 3; pszName = "sendmsg"; break; 952 case 371: cArgs = 6; pszName = "recvfrom"; break; 953 case 372: cArgs = 3; pszName = "recvmsg"; break; 954 case 373: cArgs = 2; pszName = "shutdown"; break; 955 case 374: cArgs = 1; pszName = "userfaultfd"; break; 956 case 375: cArgs = 3; pszName = "membarrier"; break; 957 case 376: cArgs = 3; pszName = "mlock2"; break; 958 case 377: cArgs = 6; pszName = "copy_file_range"; break; 959 case 378: cArgs = 6; pszName = "preadv2"; break; 960 case 379: cArgs = 6; pszName = "pwritev2"; break; 961 case 380: cArgs = 4; pszName = "pkey_mprotect"; break; 962 case 381: cArgs = 2; pszName = "pkey_alloc"; break; 963 case 382: cArgs = 1; pszName = "pkey_free"; break; 964 case 383: cArgs = 5; pszName = "statx"; break; 965 case 384: cArgs = 2; pszName = "arch_prctl"; break; 966 case 385: cArgs = 6; pszName = "io_pgetevents"; break; 967 case 386: cArgs = 4; pszName = "rseq"; break; 968 case 393: cArgs = 3; pszName = "semget"; break; 969 case 394: cArgs = 4; pszName = "semctl"; break; 970 case 395: cArgs = 3; pszName = "shmget"; break; 971 case 396: cArgs = 3; pszName = "shmctl"; break; 972 case 397: cArgs = 3; pszName = "shmat"; break; 973 case 398: cArgs = 1; pszName = "shmdt"; break; 974 case 399: cArgs = 2; pszName = "msgget"; break; 975 case 400: cArgs = 4; pszName = "msgsnd"; break; 976 case 401: cArgs = 5; pszName = "msgrcv"; break; 977 case 402: cArgs = 3; pszName = "msgctl"; break; 978 case 403: cArgs = 2; pszName = "clock_gettime64"; break; 979 case 404: cArgs = 2; pszName = "clock_settime64"; break; 980 case 405: cArgs = 2; pszName = "clock_adjtime64"; break; 981 case 406: cArgs = 2; pszName = "clock_getres_time64"; break; 982 case 407: cArgs = 4; pszName = "clock_nanosleep_time64"; break; 983 case 408: cArgs = 2; pszName = "timer_gettime64"; break; 984 case 409: cArgs = 4; pszName = "timer_settime64"; break; 985 case 410: cArgs = 2; pszName = "timerfd_gettime64"; break; 986 case 411: cArgs = 4; pszName = "timerfd_settime64"; break; 987 case 412: cArgs = 4; pszName = "utimensat_time64"; break; 988 case 413: cArgs = 6; pszName = "pselect6_time64"; break; 989 case 414: cArgs = 5; pszName = "ppoll_time64"; break; 990 case 416: cArgs = 6; pszName = "io_pgetevents_time64"; break; 991 case 417: cArgs = 5; pszName = "recvmmsg_time64"; break; 992 case 418: cArgs = 5; pszName = "mq_timedsend_time64"; break; 993 case 419: cArgs = 5; pszName = "mq_timedreceive_time64"; break; 994 case 420: cArgs = 4; pszName = "semtimedop_time64"; break; 995 case 421: cArgs = 4; pszName = "rt_sigtimedwait_time64"; break; 996 case 422: cArgs = 6; pszName = "futex_time64"; break; 997 case 423: cArgs = 2; pszName = "sched_rr_get_interval_time64"; break; 998 case 424: cArgs = 4; pszName = "pidfd_send_signal"; break; 999 case 425: cArgs = 2; pszName = "io_uring_setup"; break; 1000 case 426: cArgs = 6; pszName = "io_uring_enter"; break; 1001 case 427: cArgs = 4; pszName = "io_uring_register"; break; 1002 case 428: cArgs = 3; pszName = "open_tree"; break; 1003 case 429: cArgs = 5; pszName = "move_mount"; break; 1004 case 430: cArgs = 2; pszName = "fsopen"; break; 1005 case 431: cArgs = 5; pszName = "fsconfig"; break; 1006 case 432: cArgs = 3; pszName = "fsmount"; break; 1007 case 433: cArgs = 3; pszName = "fspick"; break; 1008 case 434: cArgs = 2; pszName = "pidfd_open"; break; 1009 case 435: cArgs = 2; pszName = "clone3"; break; 1010 case 436: cArgs = 3; pszName = "close_range"; break; 1011 case 437: cArgs = 4; pszName = "openat2"; break; 1012 case 438: cArgs = 3; pszName = "pidfd_getfd"; break; 1013 case 439: cArgs = 4; pszName = "faccessat2"; break; 1014 case 440: cArgs = 5; pszName = "process_madvise"; break; 1015 case 441: cArgs = 6; pszName = "epoll_pwait2"; break; 1016 case 442: cArgs = 5; pszName = "mount_setattr"; break; 1017 case 443: cArgs = 4; pszName = "quotactl_fd"; break; 1018 case 444: cArgs = 3; pszName = "landlock_create_ruleset"; break; 1019 case 445: cArgs = 4; pszName = "landlock_add_rule"; break; 1020 case 446: cArgs = 2; pszName = "landlock_restrict_self"; break; 1021 case 447: cArgs = 1; pszName = "memfd_secret"; break; 1022 case 448: cArgs = 2; pszName = "process_mrelease"; break; 1023 case 449: cArgs = 5; pszName = "futex_waitv"; break; 1024 case 450: cArgs = 4; pszName = "set_mempolicy_home_node"; break; 1025 case 451: cArgs = 4; pszName = "cachestat"; break; 1026 case 452: cArgs = 4; pszName = "fchmodat2"; break; 1027 1028 default: 1029 pszName = "unknown!"; 1030 cArgs = -1; 1031 break;; 1032 } 1033 Log3(("Linux syscall: %s (%#x) at %04x:%08x - cArgs=%d: ebx=%#x ecx=%#x edx=%#x esi=%#x edi=%#x ebp=%#x (esp=%#x eax=%#x efl=%#x)\n", 1034 pszName, uSysCall, pVCpu->cpum.GstCtx.cs.Sel, pVCpu->cpum.GstCtx.eip, cArgs, pVCpu->cpum.GstCtx.ebx, 1035 pVCpu->cpum.GstCtx.ecx, pVCpu->cpum.GstCtx.edx, pVCpu->cpum.GstCtx.esi, pVCpu->cpum.GstCtx.edi, pVCpu->cpum.GstCtx.ebp, 1036 pVCpu->cpum.GstCtx.esp, pVCpu->cpum.GstCtx.eax, pVCpu->cpum.GstCtx.eflags.uBoth)); 1037 1038 #ifdef IN_RING3 1039 /* 1040 * Log string arguments. 1041 */ 1042 static const uint8_t s_aidxArgToGReg[] = 1043 { X86_GREG_xBX, X86_GREG_xCX, X86_GREG_xDX, X86_GREG_xSI, X86_GREG_xDI, X86_GREG_xBP }; 1044 if (fStrArgs) 1045 { 1046 PUVM pUVM = pVCpu->pVMR3->pUVM; 1047 do 1048 { 1049 unsigned const iStrArg = ASMBitFirstSetU32(fStrArgs) - 1; 1050 fStrArgs &= ~RT_BIT_32(iStrArg); 1051 if (iStrArg < RT_ELEMENTS(s_aidxArgToGReg)) 1052 { 1053 char szStr[1024]; 1054 uint32_t const uAddr = pVCpu->cpum.GstCtx.aGRegs[s_aidxArgToGReg[iStrArg]].u32; 1055 DBGFADDRESS DbgAddr; 1056 int rc = DBGFR3MemReadString(pUVM, pVCpu->idCpu, DBGFR3AddrFromFlat(pUVM, &DbgAddr, uAddr), szStr, sizeof(szStr)); 1057 if (RT_SUCCESS(rc)) 1058 { 1059 rc = RTStrValidateEncoding(szStr); 1060 if (RT_SUCCESS(rc)) 1061 Log3(("Linux syscall %x/arg #%u: %#x '%s'\n", uSysCall, iStrArg, uAddr, szStr)); 1062 else 1063 Log3(("Linux syscall %x/arg #%u: %#x %.*Rhxs\n", uSysCall, iStrArg, uAddr, strlen(szStr), szStr)); 1064 } 1065 } 1066 1067 1068 } while (fStrArgs); 1069 } 1070 #else 1071 RT_NOREF(fStrArgs); 1072 #endif 1073 } 1074 1075 575 1076 void iemLogSyscallProtModeInt(PVMCPUCC pVCpu, uint8_t u8Vector, uint8_t cbInstr) 576 1077 { … … 586 1087 case 0x20: /* VxD call. */ 587 1088 iemLogSyscallWinVxDCall(pVCpu, cbInstr); 588 break; 1089 break;; 589 1090 } 590 1091 591 1092 /* Linux */ 592 if (LogIs3Enabled()) 593 { 594 595 } 1093 if (LogIs3Enabled() && u8Vector == 0x80) 1094 iemLogSyscallLinuxX86Int80(pVCpu); 596 1095 } 597 1096
Note:
See TracChangeset
for help on using the changeset viewer.