2016-07-05 28 views
0

Ich habe eine Core-Dump-Datei, die von einer Erlang-Anwendung generiert wurde und möchte analysieren. Dies ist das erste Mal, dass ich gdb benutze. Ich installierte gdb, aber kein Glück, es mit der ausführbaren Datei und der Core-Dump-Datei auszuführen.mit gdb zu Analyse Core-Dump - von einer Erlang-Anwendung generiert

Ich gebe die ausführbare gdb und die Core-Dump als

gdb erts-5.9.3/bin/beam.smp core 

Wenn ich laufen, dass ich,

GNU gdb (GDB) 7.9 
    Copyright (C) 2015 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 "x86_64-apple-darwin15.4.0". 
    Type "show configuration" for configuration details. 
    For bug reporting instructions, please see: 
    <http://www.gnu.org/software/gdb/bugs/>. 
    Find the GDB manual and other documentation resources online at: 
    <http://www.gnu.org/software/gdb/documentation/>. 
    For help, type "help". 
    Type "apropos word" to search for commands related to "word"... 

    Reading symbols from erts-5.9.3/bin/beam.smp...(no debugging symbols  found)...done. 
    "/Users/sad/projects/core" is not a core dump: File format not recognized 

Hilfe? Vielen Dank!

+0

Was sagt 'file/Users/sad/projects/core'? –

+0

/Benutzer/sad/projects/core: ELF 64-Bit-LSB-Kerndatei x86-64, Version 1 (SYSV), SVR4-Stil, aus '-A 128 -P 1000' – sad

Antwort

1

This GDB was configured as "x86_64-apple-darwin15.4.0". "/Users/sad/projects/core" is not a core dump: File format not recognized

$ file core
/Users/sad/projects/core: ELF 64-bit LSB core file x86-64, version 1 (SYSV), ...

Mac OS verwendet nicht ELF Dateiformat. Wir können davon ausgehen, dass dieses core von einem anderen System stammt, nicht von dem, auf dem Sie es analysieren möchten.

Es ist immer noch möglich, dass core auf dem Mac OS-System zu analysieren, aber man braucht:

  1. eine Quer GDB (dh eine, die auf Mac OS Host ausgeführt werden kann, kann aber mit ELF beschäftigen Dateien für Ihre Ziel, es ist wahrscheinlich, dass Sie solche GDB selbst) bauen müssen werde und
  2. (es sei denn Sie eine voll statische ausführbare haben), können Sie komplette Satz von gemeinsam genutzten Bibliotheken vom Host benötigen, auf dem der Unfall ist passiert. Siehe hierzu answer.

Im Allgemeinen ist es viel einfacher, die post-mortem-Analyse auf dem Host zu tun, wo der Absturz passiert ist.