This is the mail archive of the
mailing list for the GCC project.
Re: gnat 4.9.2 on arm with rtems
- From: Jan Sommer <soja-lists at aries dot uberspace dot de>
- To: Arnaud Charlet <charlet at adacore dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Sun, 25 Oct 2015 18:56:52 +0100
- Subject: Re: gnat 4.9.2 on arm with rtems
- Authentication-results: sourceware.org; auth=none
- References: <7240505 dot X6MuHlINPd at kubuntu> <20151025171353 dot GA32615 at adacore dot com>
Am Sunday 25 October 2015, 18:13:53 schrieb Arnaud Charlet:
> > After rtems initialization a thread is created which calls the gnat_main
> > function and then runs the rts and the task.
> > What I see so far is that after the hello_tasks delays itself the
> > Complete_Master procedure (s-tassta.adb:444) is called, but with
> > Self_Id set to the Id of the hello_task.
> > The call finishes and the runtime is cleaned before the task if able to wake
> > up.
> > If I debug the same program on my desktop pc Complete_Master is called with
> > the Id of the main task. It then notices that it has to wait for its dependent
> > task (hello_task), sleeps until it finishes and only then terminates the
> > runtime.
> > I would like to know from where Complete_Master is called to break there and
> > find out why it uses the wrong id.
> Why don't you simply put a breakpoint on Complete_Master?
That's how I found out about the wrong/weird Self_Id.
> You can also build hello.adb with the -gnatD switch to debug at the code
> expansion level where you'll see the call to Complete_Master.
Thank you, that option helps a lot. Will check out the generated code tomorrow.