[LLVMdev] landingpad catch types not making it to Dwarf tables

edA-qa mort-ora-y eda-qa at disemia.com
Sun Mar 31 07:12:32 PDT 2013


It looks like you have to use a const global variable for the type
clauses, otherwise they end up all pointing to a value of zero.

On 31/03/13 07:22, edA-qa mort-ora-y wrote:
> I am having some trouble getting my catch clauses to appear as expected
> in the dwarf exception tables. I have an instruction like this:
>   %0 = landingpad i64 personality i32 (i32, i32, i64, i8*, i8*)*
> @leaf_exception_personality
>           catch i8* inttoptr (i64 987 to i8*)
>           catch i8* inttoptr (i64 2453 to i8*)
> 
> In my exception handler I walk through the records. I always get the
> correct count, but I type_table information isn't communicated: both of
> these records give me a type_offset of 1 (to use the ExceptionDemo's
> name of that field).
> 
> I have cross-referenced this walking code with that demo, the gcc
> sources, and the third party (where it originated) and this aspect seems
> to be correct. Also, if I mark it as cleanup it'll get a 0 offset as
> expected (or no record if there are no catch clauses).
> 
> The resulting table entry is also always 0 (null), but at least if the
> offset would change I'd be happy enough to continue debugging.
> 
> 
> 
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> 


-- 
edA-qa mort-ora-y
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Sign: Please digitally sign your emails.
Encrypt: I'm also happy to receive encrypted mail.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 261 bytes
Desc: OpenPGP digital signature
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130331/8c9baa4e/attachment.sig>


More information about the llvm-dev mailing list