From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NbyjM-0006V7-8Q for qemu-devel@nongnu.org; Mon, 01 Feb 2010 11:02:28 -0500 Received: from [199.232.76.173] (port=37156 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NbyjL-0006US-Jv for qemu-devel@nongnu.org; Mon, 01 Feb 2010 11:02:27 -0500 Received: from Debian-exim by monty-python.gnu.org with spam-scanned (Exim 4.60) (envelope-from ) id 1NbyjH-0003W1-It for qemu-devel@nongnu.org; Mon, 01 Feb 2010 11:02:27 -0500 Received: from mx1.redhat.com ([209.132.183.28]:6808) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NbyjH-0003Vp-5P for qemu-devel@nongnu.org; Mon, 01 Feb 2010 11:02:23 -0500 Date: Mon, 1 Feb 2010 14:02:06 -0200 From: Luiz Capitulino Subject: Re: [Qemu-devel] system_reset command cause assert failed Message-ID: <20100201140206.1f414f3f@doriath> In-Reply-To: <473191351002010542h5b0c268ehbbc411be59150260@mail.gmail.com> References: <473191351001310028q75bff0fah52f7a1f3ce5fdbee@mail.gmail.com> <20100201101733.46459bde@doriath> <473191351002010436w65fe6357h8fbf1f2ef787df4d@mail.gmail.com> <20100201112208.04e70689@doriath> <473191351002010542h5b0c268ehbbc411be59150260@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Roy Tam Cc: qemu-devel On Mon, 1 Feb 2010 21:42:37 +0800 Roy Tam wrote: > 2010/2/1 Luiz Capitulino : > > On Mon, 1 Feb 2010 20:36:22 +0800 > > Roy Tam wrote: > > > >> 2010/2/1 Luiz Capitulino : > >> > On Sun, 31 Jan 2010 16:28:42 +0800 > >> > Roy Tam 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 GetSystemTimeAsFileTime@4 () > (gdb) > Single stepping until exit from function GetSystemTimeAsFileTime@4, > 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)