I think this is worthy of a discussion on how to handle this. Right now when trying to step into a function that has no debug symbols, the debugging will simply go to the first function it can find debug information for. To illustrate
def util_func(arg):
return arg * 2
def call_inner():
x = 1
y = util_func(x)
return y
def entry_point():
call_inner()
Assume we have debug information for entry_point and util_func, but not for call_inner. We put a break point inside entry_point() on call_inner(). Now when trying to step into call_inner you'll actually end up in util_func instead. If you don't realize this is the logic then it can be quite confusing to end up in a function you don't expect.
I'm thinking we should at least give a warning about missing debug symbols and then maybe a choice what to do? Skip over or the current behaviour of first function it can find.
I think this is worthy of a discussion on how to handle this. Right now when trying to step into a function that has no debug symbols, the debugging will simply go to the first function it can find debug information for. To illustrate
Assume we have debug information for
entry_point
andutil_func
, but not forcall_inner
. We put a break point insideentry_point()
oncall_inner()
. Now when trying to step intocall_inner
you'll actually end up inutil_func
instead. If you don't realize this is the logic then it can be quite confusing to end up in a function you don't expect.I'm thinking we should at least give a warning about missing debug symbols and then maybe a choice what to do? Skip over or the current behaviour of first function it can find.