Wine's support for reporting calling conventions

Roger Cruz roger_r_cruz at yahoo.com
Wed Jun 6 06:24:37 CDT 2012


Hi Eric,

Thanks for replying.  I saw that in the DWARF spec and I was afraid that DWARF may not provide detailed Info. But I also read in the spec that the compilers use a DWARF extension feature to convey additional info such as calling convention for each routine.  Is there a way to coax GCC to output that information?  Maybe thru a target plugin? 

Thanks
Roger



On Jun 6, 2012, at 3:06 AM, Eric Pouech <eric.pouech at orange.fr> wrote:

> that's a limitation of dwarf format (IIRC, from the specs, you have
> either the default CC for your programming language/ABI, or a specific
> one without defining it further)
> FYII, the codeview format reports correctly this information
> note also that winedbg doesn't support calling functions in the
> debuggee, so this information is actually not used in winedbg
> A+
> 
> 2012/6/6, Roger Cruz <roger_r_cruz at yahoo.com>:
>> 
>> 
>> In dlls/dbghelp/dwarf.c, there is this snippet of code which appears to
>> hard-code the calling convention to CALL_FAR_C.  Does Wine not support
>> reporting a function's calling convention correctly then?  Is it a
>> limitation of DWARF or just that it is not implemented?  I can see that
>> DWARF has a DW_AT_calling_convention field but when I examine a Wine DLL
>> with objdump, it does not show this field in use.
>> 
>> 
>>    /* FIXME: assuming C source code */
>>    sig_type = symt_new_function_signature(ctx->module, ret_type,
>> CV_CALL_FAR_C);
>> 
>> 
>> Thanks
>> Roger
>> 
> 
> 
> -- 
> -- 
> Eric Pouech



More information about the wine-devel mailing list