[Top][All Lists]
[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)
- Re: [Qemu-devel] system_reset command cause assert failed, Luiz Capitulino, 2010/02/01
- Re: [Qemu-devel] system_reset command cause assert failed, Roy Tam, 2010/02/01
- Re: [Qemu-devel] system_reset command cause assert failed, Luiz Capitulino, 2010/02/01
- Re: [Qemu-devel] system_reset command cause assert failed, Roy Tam, 2010/02/01
- Re: [Qemu-devel] system_reset command cause assert failed,
Luiz Capitulino <=
- Re: [Qemu-devel] system_reset command cause assert failed, Roy Tam, 2010/02/01
- Re: [Qemu-devel] system_reset command cause assert failed, Luiz Capitulino, 2010/02/01
- Re: [Qemu-devel] system_reset command cause assert failed, Roy Tam, 2010/02/01
- Re: [Qemu-devel] system_reset command cause assert failed, Luiz Capitulino, 2010/02/02
- Re: [Qemu-devel] system_reset command cause assert failed, Roy Tam, 2010/02/02
- Re: [Qemu-devel] system_reset command cause assert failed, Luiz Capitulino, 2010/02/03
- Re: [Qemu-devel] system_reset command cause assert failed, Roy Tam, 2010/02/03
- Re: [Qemu-devel] system_reset command cause assert failed, Roy Tam, 2010/02/01