The root cause for SEGV in evaluating fortran function call, any solution or suggestion?

Daniel Jacobowitz drow@false.org
Wed Nov 2 14:53:00 GMT 2005


On Wed, Nov 02, 2005 at 10:43:03AM +0800, Wu Zhou wrote:
> Hi all,
> 
> I had found the reason why gdb will drop into SEGV when evaluating the 
> fortran function calls.  In g77 (gfortran might be the same), when we try 
> to call FUNC_NAME (ARGS), the ARGS is passed as the pointer to the real 
> parameters.  
> 
> While we issue "print FUNC_NAME (ARGS), these ARGS are passed as the 
> original types.  So fortran code can't handle that and SEGV occurs.  
> Considering this special argument-passing mechanism, do we have any 
> workaround for it in gdb's evaluation code?  Create a dummy memory address 
> for the arguments and pass that address instead?  or any others? 

I don't think there's any way to handle that right now: you'll have to
add one.  I am not sure where in the call-function process it should
be.  Probably, you will also need a way to allocate them - on the stack
would be better than malloc, which is how gdb usually allocates memory.

-- 
Daniel Jacobowitz
CodeSourcery, LLC



More information about the Gdb mailing list