From: awdorrin <awdorrin@gmail.com>
Subject: Calling Ada from C (linux/gnat 4.3.2)
Date: Tue, 1 Nov 2011 11:46:07 -0700 (PDT)
Date: 2011-11-01T11:46:07-07:00 [thread overview]
Message-ID: <8ba649f0-7ca1-4f05-a158-74b074e401ee@o19g2000vbk.googlegroups.com> (raw)
I am trying to port a program originally written on VxWork to Linux.
The main program is written in C and spawns new threads and in the new
threads calls are made to Ada procedures.
In the original program, written with GreenHills AdaMulti, it appears
that there was a call being made that I am assuming was initializing
the Ada Runtime's task stack/control block (rts_init_task()) - however
this is just a guess.
In the version of the program I am migrating, I was seeing things that
made me believe that the Ada thread's did not have their stacks setup
properly, so I added the -fstack-check flag to the build.
Now, the C program creates the new thread, which calls the ada
procedure - and the moment the thread has an opportunity to run - the
application exits with 'raised STORAGE_ERROR : stack overflow
detected'
I cannot get gdb to provide me a backtrace, since the program exits.
If I try to break on the ada procedure name, I get a break, but trying
to 'step' or 'next' keeps me in the main thread until a 'sleep' call
lets the other thread run - at which point it raises the exception.
I am assuming that the ada runtime is initializing and the
STORAGE_ERROR is raised before it gets to execute any of the code in
my Ada procedure.
I have been trying to search to find what the proper way would be to
call an Ada procedure from a C pthread, but have had zero luck. I also
have been unable to determine what the equivalent of the
'rts_init_task' would be with Gnat.
Any have any ideas?
next reply other threads:[~2011-11-01 19:25 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-01 18:46 awdorrin [this message]
2011-11-01 20:44 ` Calling Ada from C (linux/gnat 4.3.2) Jeffrey Carter
2011-11-01 23:38 ` Simon Wright
2011-11-02 4:17 ` anon
2011-11-02 16:05 ` Stephen Leake
2011-11-03 16:17 ` awdorrin
2011-11-08 23:22 ` awdorrin
2011-11-09 10:46 ` Pascal Obry
2011-11-09 21:10 ` Ludovic Brenta
2012-02-28 16:28 ` Matt Grochowalski
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox