Thank you both for the review! Please commit with 'Namhyung Kim <firstname.lastname@example.org>'.
Thu, Sep 8
Wed, Sep 7
Sep 7 2022
I don't think you can rely on the behaviour of what happens to the strings when vectors are resized - I don't believe there's anything in the C++ standard or the existing type's definition that will guarantee the behaviour will remain the same.
SmallVector<std::string, 0> SecNames; ... SecNames.push_back(("PT_LOAD#" + Twine(Idx)).str());
This makes the test failing again.
Please see the second half of my previous comment re. vector resizing (can apply to SmallVector too potentially). I would expect that to be a problem.
I think we should switch to what I originally suggested, drop StringTableBuilder and use a string with \0 terminators:)
I'm actually inclined to agree - the "simplification" is turning out to be more complicated than I expected.
Sep 5 2022
This makes the test failing again.
Sep 3 2022
v5 update. Now it passes the test!
Sorry for the delay. I think I found the reason - it passed a stack-allocate string to the string table builder which keeps the cached string ref. So each section name pointed to the same place in stack and got overwritten. Will add a vector to hold the local strings.
Aug 22 2022
I suspect the StringTableBuilder does something wrong, or my understanding is incorrect. I checked with a debugger that the sh_name offset set correctly, but the first string was "PT_LOAD#3" instead of "PT_LOAD#1". Investigating...
Aug 21 2022
v4 updates. But the test still fails..
Aug 17 2022
v3 updates. But the test still fails.
Aug 16 2022
Aug 15 2022
- remove unnecessary llvm:: prefix
- convert disassemble-no-section.test to use yaml2obj
Aug 11 2022
If this is available in GNU objdump, could you post the version it was added to, please?
Aug 10 2022
- use StringTableBuilder and SmallString
- fix bug in the p_type check
Aug 9 2022
Not sure what happened with the input data. But at least it worked with my test case and linux perf kcore image.
Aug 8 2022
- Have you looked into using StringTableBuilder at all?
Aug 5 2022
Jul 13 2022
Hi, I've addressed all the comments from the previous one. Could you please review it again and commit with "Namhyung Kim <email@example.com>"?
Jul 8 2022
Do you need assistance merging this patch into the main branch?
- address reviews on test formatting
Jul 7 2022
- drop tools/llvm-objdump/no-section-header.test
- fix test failure in Object/objdump-no-sectionheaders.test
- rebase onto main branch
- a few formatting changes
Updated, please take a look!
Jul 5 2022
- small formatting issues on the test files
Jul 4 2022
- split test cases and improve comments
- remove unnecessary info in the test yaml
- remove const from obj to remove the const_cast
Jul 1 2022
perf annotate --stdio --objdump=/path/to/llvm-objdump
This command does not say how perf finds core
Thanks for your detailed review! Really appreciated!
Jun 30 2022
- add a test case
- remove a variable to check fake section
- handle llvm-objdump -h use case
Thanks for your review, now I can add a test case for this.
Cool. I didn't know I can use that. With SectionHeaderTable.NoHeaders = true, it'll do all I need. Thanks for the info!
I've changed it to use std::vector and call createFakeSections() in the llvm-objdump. I'm waiting for D128883 to update the test using yaml2obj.
Jun 29 2022
it seems obj2yaml doesn't show size info in the phdr and because of that yaml2obj sets them to 0. So there's no output... I think it should be fixed first.
Also there's no way to specify contents of segment without sections.
Most tests are created from yaml using yaml2obj. Run ninja obj2yaml. You can use obj2yaml bin to get a yaml from a binary, then manually scrub it to have just the needed details.
Consider adding a -h test too just to show the effect.
This needs a test. I suggest llvm/test/tools/llvm-objdump/X86/disassemble-no-section.test.
Jun 28 2022
Thanks for the detailed review! I'll address your comments in the next spin.
I'm new to the project and not familiar with the code base and C++. Please advise me for improvements.