Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
i#1848: auto-generate a syscall file on a new OS (#2155)
Moves the default syscall file location into logs/symbols instead of the bin/ directory, as we need a writable location. Adds a new option -syscall_number_path to allow specifying a custom location. Adds functionality to drsyscall to fetch debug info for system libraries and parse every symbol in each library looking for syscall wrappers. Two interfaces are added: drsys_find_sysnum_dlls() and drsys_generate_sysnum_file(). Includes usercall identification support via a list of target wrappers for key usercalls plus interpolation between known numbers to include speculative results for all usercalls. The syscall wrapper parsing code is based on DR's winsysnums.c, expanded to support 64-bit. The resulting syscall file only supports the current machine, unlike the general files we have posted for downloading. Adds auto-triggering of the new functionality when an unknown OS version is detected. A special exit code is used, and when the frontend sees it, it invokes the drsyscall functions for generating a syscall file. If that is successful, it re-launches the app. Adds new options -vv and -vvv to support raising verbosity for the drsyscall code invoked directly from the frontend. Changes the existing mksystable.pl-based test to test the new auto-gen functionality. Fixes #1848
- Loading branch information
1 parent
8bcd285
commit 313de07
Showing
20 changed files
with
1,311 additions
and
182 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.