users-prolog
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Why failed in process of Prolog call C call Prolog?


From: Shuai Wang
Subject: Why failed in process of Prolog call C call Prolog?
Date: Wed, 23 Jul 2014 22:26:32 -0400

Hello gnu-prolog users,


On my 64bit x86 Linux,  I am trying to implement this process.
 
I have two source code, written in C and Prolog. 
In the Prolog code, I have two functions foo and foo1.

So basically inside Prolog function foo, it calls function foo1 through a C wrapper, then after function foo1 finished, it will return through wrapper back to foo

it is something like :

---------------------------------------------------
           Prolog                |         C 
---------------------------------------------------                                
         foo      ----- call ---- >  foo1_wrapper       normal             
         foo1    <-----call -----   foo1_wrapper       normal
         foo1   -------return---> foo1_wrapper       normal
         foo     <-----return----   foo1_wrapper       fail!


The problem is that, it can never return back to function foo after foo1_wrapper returns..

I have done several test(printf, write, valgrind and others...), and I am pretty sure that foo1 returns right value, and foo1_wrapper returns foo1's return value as well.

I am really confused right now, I should be able to look into the details, however, I just don't know which way to go...

Has anyone have certain problems like this...?


Best Regards,
Shuai

reply via email to

[Prev in Thread] Current Thread [Next in Thread]