qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] system_reset command cause assert failed


From: Luiz Capitulino
Subject: Re: [Qemu-devel] system_reset command cause assert failed
Date: Mon, 1 Feb 2010 14:02:06 -0200

On Mon, 1 Feb 2010 21:42:37 +0800
Roy Tam <address@hidden> wrote:

> 2010/2/1 Luiz Capitulino <address@hidden>:
> > On Mon, 1 Feb 2010 20:36:22 +0800
> > Roy Tam <address@hidden> wrote:
> >
> >> 2010/2/1 Luiz Capitulino <address@hidden>:
> >> > On Sun, 31 Jan 2010 16:28:42 +0800
> >> > Roy Tam <address@hidden> wrote:
> >> >
> >> >> Dear all,
> >> >>
> >> >> In latest git revision, when guest OS restarts or system_reset command
> >> >> issues from monitor console, it asserts failed:
> >> >> Assertion failed: obj != NULL, file C:/msys/home/User/qemu/monitor.c, 
> >> >> line 338
> >> >
> >> >  Hm, I can't reproduce this on Linux. Can you, please provide a 
> >> > backtrace and
> >> > your git HEAD?
> >> >
> >>
> >> my environment:
> >> Windows XP SP3
> >> gcc version 3.4.5 (mingw-vista special r3)
> >> GNU Binutils 2.19.1
> >> GNU Make 3.81
> >>
> >> QEMU git rev 059bca46bbfd7f16cd2ccca631b91334e08d9abb
> >> config: ./configure --target-list="i386-softmmu x86_64-softmmu
> >> mips64el-softmmu" --audio-drv-list=sdl
> >> --audio-card-list=ac97,sb16,adlib --disable-linux-aio
> >
> >  Still no fun. It's possible that there's something windows-specific
> > that makes qobject_from_jsonf() return NULL.
> >
> >  Without a backtrace my only option is to install windows on
> > some machine here and try to reproduce the problem, but this will take
> > some time.
> >
> 
> gdb step-in trace:
> 
> (gdb) run
> Starting program: C:\msys\home\User\qemu\i386-softmmu/qemu.exe -L ../pc-bios/
> [New Thread 776.0xbcc]
> [New Thread 776.0xa30]
> 
> Breakpoint 1, monitor_protocol_event (event=???, data=???)
>     at C:/msys/home/User/qemu/monitor.c:331
> 331         err = qemu_gettimeofday(&tv);
> (gdb) next
> 386         qmp = qdict_new();
> (gdb)
> 331         err = qemu_gettimeofday(&tv);
> (gdb)
> qemu_gettimeofday (tp=???) at osdep.c:169
> 169     {
> (gdb)
> 175       if(tp)
> (gdb)
> 177           GetSystemTimeAsFileTime (&_now.ft);
> (gdb)
> 0x005e671c in address@hidden ()
> (gdb)
> Single stepping until exit from function address@hidden,
> which has no line number information.
> 0x7c8017e9 in KERNEL32!GetSystemTimeAsFileTime ()
>    from C:\WINDOWS\system32\kernel32.dll
> (gdb)
> Single stepping until exit from function KERNEL32!GetSystemTimeAsFileTime,
> which has no line number information.
> qemu_gettimeofday (tp=???) at osdep.c:178
> 178           tp->tv_usec=(long)((_now.ns100 / 10ULL) % 1000000ULL );
> (gdb)
> 0x005e0db4 in __udivdi3 ()
> (gdb)
> Single stepping until exit from function __udivdi3,
> which has no line number information.
> 0x005e0ee4 in __umoddi3 ()
> (gdb)
> Single stepping until exit from function __umoddi3,
> which has no line number information.
> qemu_gettimeofday (tp=???) at osdep.c:179
> 179           tp->tv_sec= (long)((_now.ns100 - _W32_FT_OFFSET) / 10000000ULL);
> (gdb)
> 0x005e0db4 in __udivdi3 ()
> (gdb)
> Single stepping until exit from function __udivdi3,
> which has no line number information.
> qemu_gettimeofday (tp=???) at osdep.c:184
> 184     }
> (gdb)
> monitor_protocol_event (event=???, data=???)
>     at C:/msys/home/User/qemu/monitor.c:332
> 332         if (err < 0)
> (gdb)
> 335         obj = qobject_from_jsonf("{ 'seconds': %" PRId64 ", "
> (gdb)
> qobject_from_jsonf (string=???) at qjson.c:57
> 57      {
> (gdb)
> 39          JSONParsingState state = {};
> (gdb)
> 57      {
> (gdb)
> 39          JSONParsingState state = {};
> (gdb)
> 57      {
> (gdb)
> 61          va_start(ap, string);
> (gdb)
> 39          JSONParsingState state = {};
> (gdb)
> 61          va_start(ap, string);
> (gdb)
> 41          state.ap = ap;
> (gdb)
> 39          JSONParsingState state = {};
> (gdb)
> 41          state.ap = ap;
> (gdb)
> 43          json_message_parser_init(&state.parser, parse_json);
> (gdb)
> json_message_parser_init (parser=???, func=???) at json-streamer.c:64
> 64      {
> (gdb)
> 65          parser->emit = func;
> (gdb)
> 66          parser->brace_count = 0;
> (gdb)
> 65          parser->emit = func;
> (gdb)
> 67          parser->bracket_count = 0;
> (gdb)
> 68          parser->tokens = qlist_new();
> (gdb)
> qlist_new () at qlist.c:30
> 30      {
> (gdb)
> 33          qlist = qemu_malloc(sizeof(*qlist));
> (gdb)
> qemu_malloc (size=???) at qemu-malloc.c:55
> 55      {
> (gdb)
> 56          if (!size && !allow_zero_malloc()) {
> (gdb)
> 28      {
> (gdb)
> 0x005e654c in malloc ()

 Hm, I'm puzzled. Is this failing on malloc()? At least qemu_malloc()
is the last qemu's function I see in the logs.

 From now on I only see msvcrt functions...

 Maybe, you can type run on gdb, run system_reset on the
Monitor and then switch back to gdb and type bt?

> (gdb)
> Single stepping until exit from function malloc,
> which has no line number information.
> 0x77bfc407 in msvcrt!malloc () from C:\WINDOWS\system32\msvcrt.dll
> (gdb)
> Single stepping until exit from function msvcrt!malloc,
> which has no line number information.
> 0x77bfc3d4 in msvcrt!free () from C:\WINDOWS\system32\msvcrt.dll
> (gdb)
> Single stepping until exit from function msvcrt!free,
> which has no line number information.
> 0x77c07420 in strerror () from C:\WINDOWS\system32\msvcrt.dll
> (gdb)
> Single stepping until exit from function strerror,
> which has no line number information.
> 0x77bfc2f5 in msvcrt!free () from C:\WINDOWS\system32\msvcrt.dll
> (gdb)
> Single stepping until exit from function msvcrt!free,
> which has no line number information.
> 0x7c9300c4 in ntdll!RtlAppendStringToString ()
>    from C:\WINDOWS\system32\ntdll.dll
> (gdb)
> Single stepping until exit from function ntdll!RtlAppendStringToString,
> which has no line number information.
> 0x7c92e8cb in strchr () from C:\WINDOWS\system32\ntdll.dll
> (gdb)
> Single stepping until exit from function strchr,
> which has no line number information.
> 0x7c9300d3 in ntdll!RtlAppendStringToString ()
>    from C:\WINDOWS\system32\ntdll.dll
> (gdb)
> Single stepping until exit from function ntdll!RtlAppendStringToString,
> which has no line number information.
> 0x7c938f15 in ntdll!RtlDuplicateUnicodeString ()
>    from C:\WINDOWS\system32\ntdll.dll
> (gdb)
> Single stepping until exit from function ntdll!RtlDuplicateUnicodeString,
> which has no line number information.
> Assertion failed: obj != NULL, file C:/msys/home/User/qemu/monitor.c, line 338
> 
> This application has requested the Runtime to terminate it in an unusual way.
> Please contact the application's support team for more information.
> 
> Program exited with code 03.
> (gdb)





reply via email to

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