GoogleCloudPlatform / GoogleCloudPlatform/cloud-profiler-python

Use PyFrame_GetLineNumber to get line numbers

Open
#8 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
32
Forks
35
PR merge metrics
No merged PRs in 30d

Description

The CPU profiler currently [uses `f_lineno`](https://github.com/GoogleCloudPlatform/cloud-profiler-python/blob/master/googlecloudprofiler/src/profiler.cc#L163) as the line associated with each sample. However, `f_lineno` points to the start of the frame. Looking at a source listing of these profiles in pprof results in all samples appearing to be from the function definition.

One can use [`PyFrame_GetLineNumber`](https://docs.python.org/3/c-api/reflection.html) (available in Python 2.7 as well) instead to get the currently-executing line from a frame. This can help understand where within a function the program is executing.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.