1. 20 Dec, 2017 4 commits
    • Jon Turney's avatar
      Provide a working strtok_r for MinGW · f9fc454c
      Jon Turney authored
      Prior to mingW-w64 3.3.0, strtok_r was a macro using strtok, which causes the
      processor to not work, as re-entrancy is required
      
      v2:
      Link various unit tests with @LIBOBJS@ for strtok_r
      f9fc454c
    • Jon Turney's avatar
      Build MinGW client library using gyp-generated Makefile · 07a67ab8
      Jon Turney authored
      Make what it's possible to make with gyp for MinGW.
      
      Tools which rely on DIA (dump_syms, ms_symbol_server_converter) cannot be built
      for MinGW.
      
      In theory it should be possible to build symupload, because it doesn't depend on
      DIA, but it depends on the common_windows_libs, which does have a dependency on
      DIA.
      
      v2:
      Use configure to find WINDRES
      
      v3:
      Use a path to gyp so we don't use or require installed gyp
      Pass AR down to make as well
      
      v4:
      Use the correct path to gyp
      
      v5:
      It seems we must use AM_PROG_AR to ensure AR is set correctly when
      cross-compiling.
      
      v6:
      Build Debug or Release configuration
      07a67ab8
    • Jon Turney's avatar
      Fix building minidump processor for MinGW · 69b67015
      Jon Turney authored
      - Link minidump_stackwalk, minidump_dump, microdump_stackwalk with
      PTHREAD_LIBS as pthread_cancel is used
      
      - Link minidump_stackwalk, microdump_stackwalk, binarystream_unittest with
      ws2_32 as ntoh functions are used
      
      - _s function variants should only be used if _MSC_VER, use _r variants with
      MinGW (and define _POSIX_C_SOURCE to ensure they are prototyped)
      
       - Don't try to build upload tools, dump_syms_dwarf for MinGW
      
      (Part of https://breakpad.appspot.com/548002 was commited as svn r1399 to
      fix breakpad client compilation for MinGW
      
      This is mainly the configure.ac and Makefile.am changes left over from
      https://breakpad.appspot.com/548002/ with a bit of updating, to fix building
      of the minidump processor library and tools for MinGW)
      
      v2:
      Use _POSIX_C_SOURCE not _POSIX to enable *_r() prototypes in headers
      
      The headers seem to have changed so localtime_r() prototype is now guarded
      by _POSIX_C_SOURCE
      
      This seems right anyhow as _POSIX_C_SOURCE is what SUS defines, whereas I
      think _POSIX is some left-over Interix thing?
      
      v3:
      Drop _snprintf fix, now dealt with centrally and correctly since 48673cdb
      69b67015
    • Jon Turney's avatar
      Add support for DWARF in PECOFF as used by Cygwin and MinGW · 5d027072
      Jon Turney authored
      For cygwin and mingw targets, build a dump_syms tool which can read DWARF
      symbols contained in a PE/COFF executable.
      
      I felt bad about making another copy of dump_symbols.cc, so this one has the
      beginnings of being parameterized by an image file reader class, so we can apply
      it to a pecoff-format image file reading class
      
      Write pecoff format image file reading class which
      - knows how to read PE32 and PE32+ image files
      - makes PECOFF file id by fetching from a CV record or by hashing
      - can read PECOFF exports as a fallback if there is no DWARF information
      
      v2:
      Don't include arpa/inet.h on MinGW
      
      v3:
      Use AM_CPPFLAGS for NO_STABS_SUPPORT
      
      v4:
      Fixes for -Werror=sign-compare errors arising due to signedness of size_t
      Update use of Module::Extern() for change in r1415
      Fix EOT fallback to match reality rather than PE/COFF spec.
      
      v5:
      Add needed include of winsock.h for htons etc.
      
      v6:
      Update for char -> uint8_t changes in commit bc44efdc
      
      v7:
      Update for "Add debug fission support" changes
      
      What's this?  We now build elf_reader.cc into our COFF symbols dumping tool?
      But why is that?  Because dwarf2reader now contains an entirely separate ELF
      reader, for reading .dwo/.dwp files...
      5d027072
  2. 31 Jul, 2017 1 commit
  3. 10 May, 2017 1 commit
  4. 12 Apr, 2017 1 commit
  5. 24 Mar, 2017 1 commit
  6. 16 Feb, 2017 1 commit
  7. 08 Feb, 2017 1 commit
  8. 25 Oct, 2016 1 commit
  9. 27 Jan, 2016 1 commit
    • Mike Frysinger's avatar
      only build dump_syms_mac for x86 hosts · 3f736ce0
      Mike Frysinger authored
      The dump_syms_mac tool only works for the system it is being built for
      (it doesn't support running on ELFs for a diff target), and it builds
      only for x86 currently.
      
      If you look at the mac header:
      	src/third_party/mac_headers/mach/machine/vm_types.h
      it will #error for non x86/arm systems, and the arm header is not in
      our source tree.
      
      Tweak the build so it's only compiled when targetting x86 systems.
      
      BUG=chromium:579384
      TEST=`make check` pass
      R=ted.mielczarek@gmail.com
      
      Review URL: https://codereview.chromium.org/1645673002 .
      3f736ce0
  10. 26 Jan, 2016 1 commit
    • Mike Frysinger's avatar
      test: allow use of system gmock/gtest libs · f820ead9
      Mike Frysinger authored
      Some systems provide prebuilt copies of gmock/gtest (such as Chromium
      OS).  Add a configure flag so they can take advantage of that.  This
      allows for a smaller checkout as they don't need to include the full
      testing/ tree.
      
      BUG=chromium:579384
      TEST=`make check` passes w/--enable-system-test-libs
      TEST=`make check` passes w/--disable-system-test-libs
      R=thestig@chromium.org
      
      Review URL: https://codereview.chromium.org/1638653002 .
      f820ead9
  11. 08 Jan, 2016 1 commit
  12. 11 Nov, 2015 1 commit
  13. 23 Sep, 2015 1 commit
  14. 27 Aug, 2014 1 commit
  15. 10 Dec, 2013 2 commits
  16. 31 Aug, 2012 1 commit
    • digit@chromium.org's avatar
      Add custom getcontext() implementation for Android. · 7e3c538a
      digit@chromium.org authored
      This adds a minimalistic implementation of getcontext()
      for Android/ARM and Android/x86. The provided code is
      in assembly and only implements the bare minimum required
      by Breakpad to get the current processor state.
      
      Note that:
      
      - The FPU state is not saved to the ucontext_t on ARM.
        (that's actually the main difference with a normal
         getcontext() implementation).
      
        This is normal. On Linux/ARM, such state must be
        obtained with PTRACE_GETVFPREGS instead. This will
        be implemented in a future patch.
      
      - On x86, only the 'regular' FPU state is saved, to
        mimic the GLibc/i386 implementation. The state of
        SSE/SSE2/etc registers is not part of the upstream
        getcontext() implementation.
      Review URL: https://breakpad.appspot.com/444002
      
      git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1024 4c0a9323-5329-0410-9bdc-e9ce6186880e
      7e3c538a
  17. 21 Aug, 2012 1 commit
    • digit@chromium.org's avatar
      Improve Android support · 62d486be
      digit@chromium.org authored
      This patch remove many Android-specific #ifdefs from the Breakpad
      source code. This is achieved by providing "fixed-up" platform
      headers (e.g. <signal.h> or <sys/user,h>), in the new directory
      src/common/android/include/, which masks differences between
      the NDK and GLibc headers.
      
      The old "android_link.h" and "android_ucontext.h" are moved
      and renamed.
      
      This also requires putting this directory as the first
      include path during Android-hosted builds, hence the
      modification of Makefile.am and configure.ac
      Review URL: https://breakpad.appspot.com/434002
      
      git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1017 4c0a9323-5329-0410-9bdc-e9ce6186880e
      62d486be
  18. 02 Jul, 2012 1 commit
  19. 07 Jul, 2011 1 commit
  20. 28 Feb, 2011 1 commit
  21. 08 Nov, 2010 1 commit
  22. 20 Oct, 2010 1 commit
  23. 05 Oct, 2010 2 commits
  24. 16 Sep, 2010 1 commit
  25. 31 Aug, 2010 1 commit
  26. 08 Apr, 2010 1 commit
  27. 02 Mar, 2010 1 commit
  28. 11 Feb, 2010 1 commit
  29. 14 Feb, 2007 1 commit
  30. 05 Dec, 2006 1 commit
    • mmentovai's avatar
      Module API (#32). r=waylonis, bryner · db3342a1
      mmentovai authored
       - Introduces a standard API for dealing with modules.  MinidumpModule
         is now a concrete implementation of this API.  Code may interact with
         single modules using the CodeModule interface, and collections of
         modules using its container, the CodeModules interface.
       - CodeModule is used directly by SymbolSupplier implementations and
         SourceLineResolver.  Reliance on the specific implementation in
         MinidumpModule has been eliminated.
       - Module lists are now added to ProcessState objects.  Module references
         in each stack frame are now pointers to objects in these module lists.
       - The sample minidump_stackwalk tool prints the module list after printing
         all threads' stacks.
      
      http://groups.google.com/group/airbag-dev/browse_frm/thread/a9c0550edde54cf8
      
      
      git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@74 4c0a9323-5329-0410-9bdc-e9ce6186880e
      db3342a1
  31. 25 Sep, 2006 1 commit
  32. 20 Sep, 2006 2 commits
  33. 30 Aug, 2006 1 commit
  34. 25 Aug, 2006 1 commit