ZTE MF683

Aleksander Morgado aleksander at lanedo.com
Sat Sep 22 06:12:28 PDT 2012


> Here are my CLFAGS; it has -O0, -ggdb, and -DMESSAGE_ENABLE_TRACE.
> 
> CFLAGS = -DMESSAGE_ENABLE_TRACE -Wall -std=gnu89  -pipe -ggdb -O0
> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
> -Wmissing-declarations -Wmissing-prototypes
> -Wdeclaration-after-statement -Wstrict-prototypes -fno-strict-aliasing
> -Wno-deprecated-declarations -Wint-to-pointer-cast -Wfloat-equal
> -Wno-unused-parameter -Wno-sign-compare -Wundef
> -Wimplicit-function-declaration -Wpointer-arith -Winit-self -Wshadow
> -Wmissing-include-dirs -Waggregate-return -Werror
> 

CFLAGS are ok now; but did you see the traces printed when running the
qmicli command with "--verbose"? Those are the ones we would need.

> 
> Below is another session. First, I tried looking at buffer_size so I
> could run a backtrace before the assersion failed; that didn't work.
> Somehow the assersion failed even when buffer_size was >=1. Then I
> just ran a backtrace every time that function was called.
> 

Once you get the whole trace of what was received we can probably
reproduce the issue with a unit test; are you able to get the debug logs
and post them?

> 
> If it is preferable, I can lend out the modem (and possibly other ZTE
> and Huawei modems in our stash). I could also set this box up with
> remote access. If there is a libqmi-dev chat room where you guys hang
> out, I can get on there to me more interactive and maybe not clutter
> up the mailing list.
> 

I believe we already have a module in freedesktop bugzilla for libqmi;
maybe it's worth to start using it?

Also, we usually hang out in #nm in Freenode.
> 
> (gdb) start
> Temporary breakpoint 1 at 0x14650: file qmicli.c, line 470.
> Starting program: /usr/bin/qmicli --nas-get-signal-strength -d /dev/cdc-wdm1
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/libthread_db.so.1".
> 
> Temporary breakpoint 1, main (argc=4, argv=0xbed36d74) at qmicli.c:470
> 470     qmicli.c: No such file or directory.
> (gdb) break qmi_utils_read_guint8_from_buffer
> Breakpoint 2 at 0x401635f8: file qmi-utils.c, line 69.
> (gdb) start
> The program being debugged has been started already.
> Start it from the beginning? (y or n) n
> Program not restarted.
> (gdb) continue
> Continuing.
> [New Thread 0x40ddb470 (LWP 472)]
> 
> Breakpoint 2, qmi_utils_read_guint8_from_buffer (buffer=0xbed36ae5,
>     buffer_size=0xbed36ae5, out=0xbed36ae6 "\002") at qmi-utils.c:69
> 69      qmi-utils.c: No such file or directory.
> (gdb) print *buffer_size
> $1 = 512
> (gdb) continue
> Continuing.
> 
> Breakpoint 2, qmi_utils_read_guint8_from_buffer (buffer=0xbed36ae8,
>     buffer_size=0xbed36ae6, out=0xbed36ae5 "\003\001") at qmi-utils.c:69
> 69      in qmi-utils.c
> (gdb) print *buffer_size
> $2 = 1
> (gdb) continue
> Continuing.
> 
> Breakpoint 2, qmi_utils_read_guint8_from_buffer (buffer=0x39ac0,
>     buffer_size=0x40388, out=0x40376000 "\260N\021") at qmi-utils.c:69
> 69      in qmi-utils.c
> (gdb) print *buffer_size
> $3 = 65232
> (gdb) continue
> Continuing.
> 
> Breakpoint 2, qmi_utils_read_guint8_from_buffer (buffer=0x39ac0,
>     buffer_size=0x40388, out=0x40376000 "\260N\021") at qmi-utils.c:69
> 69      in qmi-utils.c
> (gdb) print *buffer_size
> $4 = 65232
> (gdb) continue
> Continuing.
> **
> ERROR:qmi-utils.c:72:qmi_utils_read_guint8_from_buffer: assertion
> failed: (*buffer_size >= 1)
> [Thread 0x40ddb470 (LWP 472) exited]
> 
> Program received signal SIGABRT, Aborted.
> 0x4049c7cc in raise () from /lib/libc.so.6
> (gdb) continue
> Continuing.

None of the buffer_size values printed above make any sense, specially
the last ones.


> 
> Program terminated with signal SIGABRT, Aborted.
> The program no longer exists.
> (gdb) start
> Temporary breakpoint 3 at 0x14650: file qmicli.c, line 470.
> Starting program: /usr/bin/qmicli --nas-get-signal-strength -d /dev/cdc-wdm1
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/libthread_db.so.1".
> 
> Temporary breakpoint 3, main (argc=4, argv=0xbeff2d74) at qmicli.c:470
> 470     qmicli.c: No such file or directory.
> (gdb) continue
> Continuing.
> [New Thread 0x40e66470 (LWP 474)]
> 
> Breakpoint 2, qmi_utils_read_guint8_from_buffer (buffer=0xbeff2ae5,
>     buffer_size=0xbeff2ae5, out=0xbeff2ae6 "\002") at qmi-utils.c:69
> 69      qmi-utils.c: No such file or directory.
> (gdb) bt
> #0  qmi_utils_read_guint8_from_buffer (buffer=0xbeff2ae5,
>     buffer_size=0xbeff2ae5, out=0xbeff2ae6 "\002") at qmi-utils.c:69
> #1  0x40235a10 in qmi_message_ctl_allocate_cid_response_parse (
>     message=0x35e70, error=0xbeff2b1c) at qmi-ctl.c:1641
> #2  0x40239790 in allocate_cid_ready (device=0x32208, res=0x32480,
>     simple=0x32448) at qmi-ctl.c:3939
> #3  0x4038c1d4 in g_simple_async_result_complete ()
>    from /usr/lib/libgio-2.0.so.0
> #4  0x4038c220 in ?? () from /usr/lib/libgio-2.0.so.0
> Cannot access memory at address 0x0
> #5  0x4038c220 in ?? () from /usr/lib/libgio-2.0.so.0
> Cannot access memory at address 0x0
> Backtrace stopped: previous frame identical to this frame (corrupt stack?)
> (gdb) continue
> Continuing.
> 
> Breakpoint 2, qmi_utils_read_guint8_from_buffer (buffer=0xbeff2ae8,
>     buffer_size=0xbeff2ae6, out=0xbeff2ae5 "\003\001") at qmi-utils.c:69
> 69      in qmi-utils.c
> (gdb) bt
> #0  qmi_utils_read_guint8_from_buffer (buffer=0xbeff2ae8,
>     buffer_size=0xbeff2ae6, out=0xbeff2ae5 "\003\001") at qmi-utils.c:69
> #1  0x40235a3c in qmi_message_ctl_allocate_cid_response_parse (
>     message=0x35e70, error=0xbeff2b1c) at qmi-ctl.c:1648
> #2  0x40239790 in allocate_cid_ready (device=0x32208, res=0x32480,
>     simple=0x32448) at qmi-ctl.c:3939
> #3  0x4038c1d4 in g_simple_async_result_complete ()
>    from /usr/lib/libgio-2.0.so.0
> #4  0x4038c220 in ?? () from /usr/lib/libgio-2.0.so.0
> Cannot access memory at address 0x0
> #5  0x4038c220 in ?? () from /usr/lib/libgio-2.0.so.0
> Cannot access memory at address 0x0
> Backtrace stopped: previous frame identical to this frame (corrupt stack?)
> (gdb) continue
> Continuing.
> 
> Breakpoint 2, qmi_utils_read_guint8_from_buffer (buffer=0x39ac0,
>     buffer_size=0x40320, out=0x4043c000 "\260N\021") at qmi-utils.c:69
> 69      in qmi-utils.c
> (gdb) bt
> #0  qmi_utils_read_guint8_from_buffer (buffer=0x39ac0, buffer_size=0x40320,
>     out=0x4043c000 "\260N\021") at qmi-utils.c:69
> #1  0x40287910 in qmi_message_nas_get_signal_strength_response_parse (
>     message=0x35db0, error=0xbeff2b1c) at qmi-nas.c:7848
> #2  0x402bf7b0 in get_signal_strength_ready (device=0x32208, res=0x32528,
>     simple=0x324f0) at qmi-nas.c:44350
> #3  0x4038c1d4 in g_simple_async_result_complete ()
>    from /usr/lib/libgio-2.0.so.0
> #4  0x4038c220 in ?? () from /usr/lib/libgio-2.0.so.0
> Cannot access memory at address 0x0
> #5  0x4038c220 in ?? () from /usr/lib/libgio-2.0.so.0
> Cannot access memory at address 0x0
> Backtrace stopped: previous frame identical to this frame (corrupt stack?)
> (gdb) continue
> Continuing.
> 
> Breakpoint 2, qmi_utils_read_guint8_from_buffer (buffer=0x39ac0,
>     buffer_size=0x40320, out=0x4043c000 "\260N\021") at qmi-utils.c:69
> 69      in qmi-utils.c
> (gdb) bt
> #0  qmi_utils_read_guint8_from_buffer (buffer=0x39ac0, buffer_size=0x40320,
>     out=0x4043c000 "\260N\021") at qmi-utils.c:69
> #1  0x40287910 in qmi_message_nas_get_signal_strength_response_parse (
>     message=0x35db0, error=0xbeff2b1c) at qmi-nas.c:7848
> #2  0x402bf7b0 in get_signal_strength_ready (device=0x32208, res=0x32528,
>     simple=0x324f0) at qmi-nas.c:44350
> #3  0x4038c1d4 in g_simple_async_result_complete ()
>    from /usr/lib/libgio-2.0.so.0
> #4  0x4038c220 in ?? () from /usr/lib/libgio-2.0.so.0
> Cannot access memory at address 0x0
> #5  0x4038c220 in ?? () from /usr/lib/libgio-2.0.so.0
> Cannot access memory at address 0x0
> Backtrace stopped: previous frame identical to this frame (corrupt stack?)
> (gdb) continue
> Continuing.
> **
> ERROR:qmi-utils.c:72:qmi_utils_read_guint8_from_buffer: assertion
> failed: (*buffer_size >= 1)
> 
> Program received signal SIGABRT, Aborted.
> 0x405627cc in raise () from /lib/libc.so.6
> (gdb) bt
> #0  0x405627cc in raise () from /lib/libc.so.6
> #1  0x40563c54 in abort () from /lib/libc.so.6
> #2  0x40563c54 in abort () from /lib/libc.so.6
> Backtrace stopped: previous frame identical to this frame (corrupt stack?)
> (gdb) continue
> Continuing.
> [Thread 0x40e66470 (LWP 474) exited]
> 
> Program terminated with signal SIGABRT, Aborted.
> The program no longer exists.
> (gdb)
> 

-- 
Aleksander


More information about the libqmi-devel mailing list