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

Line information fixes for HPCToolkit #122

Closed
jdetter opened this issue Jul 13, 2016 · 1 comment
Closed

Line information fixes for HPCToolkit #122

jdetter opened this issue Jul 13, 2016 · 1 comment
Labels
Milestone

Comments

@jdetter
Copy link
Contributor

jdetter commented Jul 13, 2016

  • Virtual functions not getting in right modules
  • Filenames still winding up in std::string rather than const char*
  • Iterative deallocation is deprecated, use whole-list instead
  • Cache filenames in parseLineInfoForCU
  • Compare indices not names in parseLineInfoForCU
  • Check whether returned Statement* are new copies or pointers to existing
@jdetter jdetter added this to the Release 9.2.1 milestone Jul 13, 2016
@wrwilliams
Copy link
Member

State of the world here:

For binaries with an aranges section, we're getting correct module information with effectively perfect accuracy. Filenames on PR#135 are properly string-tabled. Deallocation bugs are fixed.

Things that are not working right/yet on PR#135:

  • For any CU without an entry in .debug_aranges or attached range information, we need to be able to automagically infer its range information from its line info (if any). This happens if/when we force a line info parse for that CU, but there's not a proper lazy evaluation path that catches all relevant cases yet.
  • If line information inferred from CUs results in overlapping modules, we may not detect all the modules present. The same holds for statements within the same module that overlap due to incorrect DWARF information or incorrect DWARF parsing.

Things to note re: diffs against HPCtoolkit's unit tests (as opposed to cases where either Symtab or binutils finds no line info):

I have spot-checked a fair number of these differences; they all appear to be disagreements about the boundary between two source lines. Symtab agrees with dwarfdump on the ones I've checked.

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

No branches or pull requests

2 participants