On Mon, 1 Feb 2010 21:42:37 +0800 Roy Tam <roy...@gmail.com> wrote: > 2010/2/1 Luiz Capitulino <lcapitul...@redhat.com>: > > On Mon, 1 Feb 2010 20:36:22 +0800 > > Roy Tam <roy...@gmail.com> wrote: > > > >> 2010/2/1 Luiz Capitulino <lcapitul...@redhat.com>: > >> > On Sun, 31 Jan 2010 16:28:42 +0800 > >> > Roy Tam <roy...@gmail.com> 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 getsystemtimeasfilet...@4 () > (gdb) > Single stepping until exit from function getsystemtimeasfilet...@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)