tberghammer added a comment.

Yes it will prevent the artificial size calculation for symbols with 0 size in 
.dynsym. I think all function and data symbols should have a valid size so I am 
not sure why we have this symbol size calculation in the first place but I 
assume it is to work around some old compiler bug.

You can end up with a 0 size symbol if you specify a symbol in assembly without 
specifying it's type and size (found it in some android framework code).

  .global foo
  foo:
  <any data or code>

The unwinder treat symbols with 0 size the same way as it treats with valid 
size. The difference is that it treats an address differently if we have a 
symbol for it and if we don't have a symbol for it. In the first case it 
calculates the unwind info for the given function while in the second case it 
tries to find unwind information fitting for the given address.

The current implementation with extending the length of the symbol have a few 
problem:

- We will display the wrong function name to the user in the backtrace what is 
annoying (worse then not showing a function name)
- If we end up with an incorrect symbol name then we will use the unwind 
information for that symbol what won't be valid at the location where the code 
is currently stopped


http://reviews.llvm.org/D16186



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to