forked from osandov/drgn
-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merge branch 'master' into '6.0/stage' #15
Merged
Merged
Conversation
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
…SSE 4.2 We were forgetting to mask away the extra bits. There are two places that we use the tag without converting it to a uint8_t: hash_table_probe_delta(), which is mostly benign since we mask it by the chunk mask anyways; and table_chunk_match() without SSE 2, which completely breaks. While we're here, let's align the comments better.
This makes it much easier to follow along with the code and understand the format.
Declaring a local vector or hash table and separately initializing it with vector_init()/hash_table_init() is annoying. Add macros that can be used as initializers. This exposes several places where the C89 style of placing all declarations at the beginning of a block is awkward. I adopted this style from the Linux kernel, which uses C89 and thus requires this style. I'm now convinced that it's usually nicer to declare variables where they're used. So let's officially adopt the style of mixing declarations and code (and ditch the blank line after declarations) and update the functions touched by this change.
I once tried to implement a generic arithmetic right shift macro without relying on any implementation-defined behavior, but this turned out to be really hard. drgn is fairly tied to GCC and GCC-compatible compilers (like Clang), so let's just assume GCC's model [1]: modular conversion to signed types, two's complement signed bitwise operators, and sign extension for signed right shift. 1: https://gcc.gnu.org/onlinedocs/gcc/Integers-implementation.html
This documents best practices for contributing to drgn. We now require a DCO sign-off. Also clean up some related areas in the documentation. Signed-off-by: Omar Sandoval <[email protected]>
sdimitro
approved these changes
Jul 8, 2020
prakashsurya
approved these changes
Jul 8, 2020
Commit eea5422 ("libdrgn: make Linux kernel stack unwinding more robust") overlooked that if the task is running in userspace, the stack pointer in PRSTATUS obviously won't match the kernel stack pointer. Let's bite the bullet and use the PID. If the race shows up in practice, we can try to come up with another workaround.
GCC 10 doesn't generate a DIE for union thread_union, which breaks our THREAD_SIZE object finder. The previous change removed our internal dependency on THREAD_SIZE, so disable this test while I investigate why GCC changed.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.