The problem in this bug is that our statement(NUM) lookup was only
searching for the outermost function (not inlined) which contains the PC
in question. When that PC happens to be the beginning of the function
and also the beginning of an inline, the caching was using the wrong
variable scope.
The function/statement(NUM) lookup has been rewritten to bypass all of
the CU and function iteration, and just go straight to a getscopes(pc)
lookup, so it will now always use the innermost containing die for the
variable scope.
* tapsets.cxx (query_addr): New, short-circuit for numeric probes.
(dwarf_query::query_module_dwarf): Route num probes to query_addr.
(query_label): Assume now that we only need to handle _str probes.
(query_dwarf_inline_instance): Ditto.
(query_dwarf_func): Ditto.
(query_cu): Ditto.