Skip to content
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

Use PyFrame_GetLineNumber to get line numbers #198

Merged
merged 2 commits into from
Jun 11, 2019
Merged

Conversation

timpalpant
Copy link
Contributor

In Python 2, the line offsets in co_lnotab are unsigned bytes (see: Python2 vs. Python3 implementations of Addr2Line). The code for resolving the line in vmprof assumes that they are signed char. This leads to invalid profiles with negative line numbers (see e.g. the minimal repro in #154).

This change updates the code to instead use PyFrame_GetLineNumber, which is available in the runtime since Python >=2.7 so that we don't need to reimplement it here.

Fixes #154.

@fijal fijal merged commit e4e99e5 into vmprof:master Jun 11, 2019
@timpalpant
Copy link
Contributor Author

Thanks @fijal ! Any chance I could request a new pypi release when you have a chance?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

AssertionError in vmprofshow gives not very helpful error
3 participants