> On Aug 5, 2019, at 11:54 AM, Pavel Labath <pa...@labath.sk> wrote: > > On 05/08/2019 20:20, Greg Clayton via lldb-commits wrote: >>> On Aug 5, 2019, at 11:11 AM, <paul.robin...@sony.com> >>> <paul.robin...@sony.com> wrote: >>> >>>> I also tried to obj2yaml the good DWARF and change it, but once you >>>> add bytes all of the section sizes and offsets are off so that was >>>> not very fruitful, so I ran into errors when trying to convert the >>>> yaml back to and ELF file. >>>> >>>> Greg >>> >>> Yet another case where a "DWARF assembler" would be useful. >> Yeah, that is why I made the DWARFGenerator class in >> llvm/unittests/DebugInfo/DWARF/DwarfGenerator.cpp so I can hand craft DWARF >> where I can change offsets and move stuff around. It doesn't create an ELF >> file with section contents for .text or anything though. > > While it definitely leaves a lot to be desired, I have found it relatively > easy to take the output of "clang -S", and then tweak the generated dwarf > assembly to produce the kind of output I need for testing various edge cases. > > This case also does not sound particularly hard. I'd probably do it by taking > one of the existing DWARF .s test files and modify it to trigger this > situation. My first candidate would be > lit/SymbolFile/DWARF/forward-declarations.s -- it already has a struct with a > DW_AT_declaration attribute, so probably all that's needed is to add a > DW_AT_calling_convention to it. The assembly is already updated to use > symbolic addresses, so no manual fixups of offsets should be needed.
Great idea... I always forget about .s files. I was a able to make one from my example code when compiled with -flimit-debug-info and then add in the DW_AT_calling_convention attribute with a value of DW_CC_pass_by_value. I can crash things now so I should be able to make a test case. Greg _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits