[Crash-utility] Crash utility on Android

Dave Anderson anderson at redhat.com
Fri Sep 6 14:27:36 UTC 2013



----- Original Message -----
> Hi ,
> I am going to using crash utility for kernel issue on my Android device , It
> is a ARM cortex chip with Qualcomm platform , So I download crash source
> code and built it as ARM target , but looks problem as below , I also attach
> build log , thanks a lot for your kindly help ,
> 
> 
> Br
> Jordan

Not that it's necessarily indicative of the problem at hand, but I am curious
as to how your build came up with a target of "arm-linux-androideabi"?

When building crash with "make target=ARM", the configure command argument
passed to the embedded gdb build is "--target =arm-elf-linux", and on a RHEL or
Fedora x86_64 host, "gnu" gets appended to it, such that the resultant target
is shown like this in the gdb banner:

  This GDB was configured as "--host=x86_64-unknown-linux-gnu --target=arm-elf-linux"...

Is your x86_64 host machine also running an Android environment?

Anyway, it actually made it quite far into the initialization before
it fails with the "crash: cannot hash task_struct entries", which I
believe is caused by a bug in the ARM code here in the unwind_arm.c
function init_module_unwind_tables():

        hq_open();
        cnt = do_list(&ld);
        if (cnt == -1) {
                error(WARNING, "UNWIND: failed to gather unwind_table list");
                return FALSE;
        }

If you put a call to hq_close() here, it should at least continue on a bit farther
in the initialization sequence:

        hq_open();
        cnt = do_list(&ld);
        if (cnt == -1) {
                error(WARNING, "UNWIND: failed to gather unwind_table list");
+               hq_close();
                return FALSE;
        }

I'm not sure what's happening w/respect to the crash_notes and unwind info
gathering.  The ARM guys on this list may have some ideas about that?

Also, when posting crash initialization-type failures, can you also attach
a full debug output by putting "-d8" on the crash command line?

Thanks,
  Dave



   
 
> --------------Crash
> Log-------------------------------------------------------------
> crash 7.0.2
> Copyright (C) 2002-2013 Red Hat, Inc.
> Copyright (C) 2004, 2005, 2006, 2010 IBM Corporation
> Copyright (C) 1999-2006 Hewlett-Packard Co
> Copyright (C) 2005, 2006, 2011, 2012 Fujitsu Limited
> Copyright (C) 2006, 2007 VA Linux Systems Japan K.K.
> Copyright (C) 2005, 2011 NEC Corporation
> Copyright (C) 1999, 2002, 2007 Silicon Graphics, Inc.
> Copyright (C) 1999, 2000, 2001, 2002 Mission Critical Linux, Inc.
> This program is free software, covered by the GNU General Public License,
> and you are welcome to change it and/or distribute copies of it under
> certain conditions. Enter "help copying" to see the conditions.
> This program has absolutely no warranty. Enter "help warranty" for details.
> GNU gdb (GDB) 7.6
> Copyright (C) 2013 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later < http://gnu.org/licenses/gpl.html
> >
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law. Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "--host=x86_64-unknown-linux-gnu
> --target=arm-linux-androideabi"...
> 
> WARNING: invalid note (n_type != NT_PRSTATUS)
> WARNING: could not retrieve crash_notes
> 
> crash: invalid list entry: 90a0909
> WARNING: UNWIND: failed to gather unwind_table listWARNING: UNWIND: failed to
> initialize module unwind tables
> please wait... (gathering task table data)
> crash: cannot hash task_struct entries
> 
> 
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility




More information about the Crash-utility mailing list