qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Davide Ferraretto <femudevelopment@gmail.com>
To: Max Filippov <jcmvbkbc@gmail.com>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] arm return
Date: Fri, 01 Jun 2012 14:30:10 +0200	[thread overview]
Message-ID: <4FC8B5D2.1030204@gmail.com> (raw)
In-Reply-To: <CAMo8BfLF4AJzUetTSf2Yh2HFiPuWiW4X39Yefm6JmRktWTnPVQ@mail.gmail.com>

I'm in "arm user space" with "sigle step mode". I want write "exit\n" in 
linux shell (no QEMU monitor) when emulate code arrives to "return 0"

On 06/01/12 14:23, Max Filippov wrote:
> On Fri, Jun 1, 2012 at 3:57 PM, Davide Ferraretto
> <femudevelopment@gmail.com>  wrote:
>> I tried to insert " printf("exit\n"); ", but qemu dosen't write to monitor.
> printf should not write to monitor (if you mean QEMU monitor), it
> should go to stdout.
> I don't have ARM compiler set up ATM, but x86_64 with the following
> patch does what I describe:
>
> $ git diff
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 20d2a74..ccb71dc 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -5052,6 +5052,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
>
>       switch(num) {
>       case TARGET_NR_exit:
> +        fprintf(stderr, "TARGET_NR_exit\n");
>   #ifdef CONFIG_USE_NPTL
>         /* In old applications this may be used to implement _exit(2).
>            However in threaded applictions it is used for thread termination,
> @@ -6833,6 +6834,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
>   #ifdef __NR_exit_group
>           /* new thread calls */
>       case TARGET_NR_exit_group:
> +        fprintf(stderr, "TARGET_NR_exit_group\n");
>   #ifdef TARGET_GPROF
>           _mcleanup();
>   #endif
>
> $ cat a.c
> #include<stdio.h>
> int main()
> {
>      printf("Hello, world\n");
>      return 0;
> }
>
> $ gcc -static a.c -o a
> $ qemu-all/root/bin/qemu-x86_64 ./a
> Hello, world
> TARGET_NR_exit_group
>
>> On 06/01/12 13:43, Max Filippov wrote:
>>> On Fri, Jun 1, 2012 at 3:16 PM, Davide Ferraretto
>>> <femudevelopment@gmail.com>    wrote:
>>>> In arm user mode, where does qemu exit? Where is last qemu's instruction?
>>>>
>>>> I.E.
>>>> int main (){return 0;}
>>>> in what file does qemu run "return 0"??
>>> Simulated code reaches the point where libc calls 'exit' or 'exit_group'
>>> syscall
>>> and then QEMU goes to the do_syscall in the linux-user/syscall.c to
>>> terminate
>>> the process.
>>>

  reply	other threads:[~2012-06-01 12:31 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-01 11:16 [Qemu-devel] arm return Davide Ferraretto
2012-06-01 11:43 ` Max Filippov
2012-06-01 11:57   ` Davide Ferraretto
2012-06-01 12:23     ` Max Filippov
2012-06-01 12:30       ` Davide Ferraretto [this message]
2012-06-01 12:42         ` Max Filippov
     [not found]           ` <4FC8BD42.6080209@gmail.com>
2012-06-01 13:12             ` Max Filippov
     [not found]               ` <4FC8C03A.2000902@gmail.com>
2012-06-01 13:26                 ` Max Filippov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FC8B5D2.1030204@gmail.com \
    --to=femudevelopment@gmail.com \
    --cc=jcmvbkbc@gmail.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).