-
Notifications
You must be signed in to change notification settings - Fork 131
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
Fix bug in triaging stack func #657
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At this point the check will be triggered if LLVMFuzzerTestOneInput
is in any of the frames, which I assume is more or less every crash? (Exceptions include e.g. multi-threaded programs where the crash occurs in a child)
Thank you for your review. You are right. “LLVMFuzzerTestOneInput” will appear in almost all crash stacks. However, this part of the code is to determine whether the function belonging to the project to be tested is executed after executing “LLVMFuszzerTestOneInput”. Let me show you two examples,
In the crash stack above, the stack frame above "LLVMFuzzerTestOneInput" does not contain the function of the project under test, so it is considered to be a driver problem. As for the crash stack below, the stack frames above “LLVMFuzzerTestOneInput” contain the functions of the project to be tested, so the driver is not considered to have any problems for the time being.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM -- Thanks for the example!
/gcbrun skip |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep thanks.
Look forward to seeing you integrate this into agents.
This PR fixes the bug in using heuristic methods to determine whether the fuzz driver has a problem. This sub-rule was originally intended to traverse each stack frame in the first crash stack until it finds a stack frame containing the "LLVMFuzzerTestOneInput" function, and other stack frames before this stack frame do not contain functions of testing proj. For the task of determining whether the function in the stack frame belongs to testing proj (i.e. function "_stack_func_is_of_testing_project"), we originally planned to let LLM make the judgment. Since adding this part of logic to the original framework makes the code redundant and complicated, we will implement this logic in the agent framework. The agent code will be submitted in the next few days.