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.
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
Introduced a script to capture leaks from malloc / free #44
base: master
Are you sure you want to change the base?
Introduced a script to capture leaks from malloc / free #44
Changes from all commits
9a2be61
519bff3
c35af91
e73561c
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
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.
I don't think you need these as globals if they are only used in one place.
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.
It would be nicer if thee state were not a global. See below.
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.
Use a set and then you can just do
.remove(alloc)
. This requiresMemAlloc
to be hashable and not modifiable so using a frozen data class as I suggested above will make it work.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.
You can achieve the same by defining a
stop
method in a class derived fromgdb.Breakpoint
.And similar for
free
.Returning
False
fromstop
prevents GDB from stopping at this breakpoint so you don't need multiplecontinue
.Also use
internal=True
so that the breakpoint doesn't modify the number of the next BP created by the user.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.
I thought about using this approach but the documentation states:
and, because I need to get to the end of malloc() I decided not to use this technique and I went for the stop handlers instead.
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.
You should remove the breakpoints you create after you are done. If you follow my suggestions from above you will have:
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.
If you use a set then the results will be in an arbitrary order. You can do this:
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.
There are a few possible improvements here:
Maybe something like this:
The various bits after the
:
characters mean:18
: pad to 18 characters with spaces018
: pad to 18 characters with zeroes,
: format numbers with commas every 3 digitsx
: use hexadecimal#
: add0x