1. 09 Feb, 2018 1 commit
  2. 08 Feb, 2018 1 commit
  3. 22 Dec, 2017 1 commit
  4. 21 Dec, 2017 2 commits
  5. 20 Dec, 2017 18 commits
    • Pierre Lamot's avatar
      build dump_syms_dwarf on linux · bfc66505
      Pierre Lamot authored
      bfc66505
    • Pierre Lamot's avatar
      Use libcurl from pkg-config · 2091f2fe
      Pierre Lamot authored
      2091f2fe
    • Jon Turney's avatar
      Disable DwpReader for MinGW · 3ddd24c2
      Jon Turney authored
      elf_reader.cc uses mmap(), which isn't available
      
      Perhaps we could change to using MmapWrapper(), which I've already fixed for
      Windows, but this code isn't doing anything for us anyhow
      3ddd24c2
    • Jon Turney's avatar
      Add gcc builds to appveyor.yml file · 03fc40e6
      Jon Turney authored
      * It seems we must use gyp --no-parallel, as parallel operation fails in the
      appveyor environment for unknown reasons.
      
      * The Makefile written by gyp doesn't have an install target, so install the
      gyp build products (libbreakpad_client.a, breakpad-client.pc and
      crash_generation_app.exe).
      
      v2:
      Make appveyor.sh work when builddir != srcdir
      
      v3:
      Include 'make check' in appveyor.sh
      
      * Apply a patch needed to build gtest r615 for Windows with -Werror=unused-variable
      * Ensure PATH is set so tests can find needed runtime DLLs
      * Relax a test which requires POSIX regex when built without them
      * Don't test ifstream.good() even though we haven't yet read at the EOF (this
      looks like a MinGW bug...)
      
      v4:
      Remove os:unstable from appveyor.yml
      Apparently this might make the build use VMs on older, slower infrastructure
      Update for changed script name
      
      v5:
      Maybe appveyor is fast enough for make check now
      
      v6:
      Remove gtest patch as no longer needed
      Add to, rather than replace, msvs-only appveyor.yml
      Run unittests on gcc (still failures, though)
      Add cygwin to build matrix
      03fc40e6
    • 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
      Use __USE_MINGW_ANSI_STDIO for MinGW build · 60a53649
      Jon Turney authored
      Use __USE_MINGW_ANSI_STDIO for ANSI C99 compatible implementation of printf()
      and friends on MinGW
      
      Perhaps we don't need this, if all the printf formats used are in the subset
      supported by MSVCRT, but it's easier to turn this on than audit every
      single format string...
      60a53649
    • 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 client library and upload tools for MinGW · 0f2aae4e
      Jon Turney authored
      This is the rest of https://breakpad.appspot.com/548002/, brought up to date
      
      v2:
      Refine MinGW changes in HTTPUpload::GetFileContents so it closes file after use
      
      v3:
      For consistency, write conditionals in terms of _MSC_VER, not __MINGW32__
      
      v4:
      Use fd rather than FILE * in HTTPUpload::GetFileContents
      
      It appears that constructing a stdio_filebuf from a FILE * does a fflush(0),
      which has been seen to occasionally fail EBADF (on at least W7 x64).
      
      Both of these things seem like they might be bugs
      
      Workaround for the moment by constructing stdio_filebuf from a fd instead.
      
      v5:
      Drop HTTPUpload::GetFileContents() changes as upstream now uses WideTOMBCP()
      Drop changes to avoid stdext::checked_array_iterator, as upstream
      0f2aae4e
    • Jon Turney's avatar
      Build PECOFF/DWARF dump_syms for MinGW · ed6adbf4
      Jon Turney authored
      - Substitute MapViewOfFile() for mmap()
      - Link dump_syms_dwarf with ws2_32 as ntoh functions are used
      
      v2:
      Add needed include of windows.h
      ed6adbf4
    • 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
    • Jon Turney's avatar
      Build minidump_upload and sym_upload for all targets · 6014abd5
      Jon Turney authored
      minidump_upload and sym_upload should probably move from src/tools/linux/ to
      a new src/tools/common/, and move linux/http_upload.{cc,.h} up to
      src/common/ from src/common/linux/ ?
      6014abd5
    • Jon Turney's avatar
      Link minidump_upload and sym_upload with curl · 6eedd432
      Jon Turney authored
      Don't link with -ldl and use dlopen to use libcurl.so, but just link with
      libcurl
      
      This has the advantage of not needing to know the precise name of the curl
      shared object on every platform...
      
      This effectively reverts commit 68b4798e
      
      See also https://bugs.chromium.org/p/google-breakpad/issues/detail?id=225
      
      XXX: Perhaps retaining linking with -dl and just teaching it the name of
      curl shared object on Cygwin would be more upstreamable, although the
      reasons for solving the bug above like this are obscure to me ...
      6eedd432
    • Jon Turney's avatar
      Remove local copy of curl headers · e6c274aa
      Jon Turney authored
      This reverts commit d9d863e1 (svn r732)
      This reverts commit 68e380d5 (svn r829)
      
      v2:
      Add libcurl-dev to packages needed on travis
      Also remove curl headers from EXTRA_DIST
      Don't include curl/types.h doesn't exist anymore and has been deprecated
      since 2004
      e6c274aa
    • Tobias Sargeant's avatar
      Provide helper wrappers for basename(3) and dirname(3) · 128d958c
      Tobias Sargeant authored
      This hides the need to provide mutable C strings, and unifies
      existing basename calls and variations in a single location.
      
      Change-Id: Idfb449c47b1421f1a751efc3d7404f15f8b369ca
      Reviewed-on: https://chromium-review.googlesource.com/725731Reviewed-by: 's avatarMark Mentovai <mark@chromium.org>
      Reviewed-by: 's avatarMike Frysinger <vapier@chromium.org>
      128d958c
    • Ted Mielczarek's avatar
      Rename src/common/memory.h to memory_allocator.h. · 606a1d29
      Ted Mielczarek authored
      memory.h shadows a system header which normally isn't a problem
      because of the include paths in Breakpad, but the Firefox build
      system winds up with src/common in the include path so we've had
      a workaround for this for years. Renaming the file lets us get
      rid of that workaround and shouldn't hurt anything.
      
      Change-Id: I3b7c4239dc77f3b2b7cf2b572a0cad88cd7e8522
      Reviewed-on: https://chromium-review.googlesource.com/723261Reviewed-by: 's avatarMark Mentovai <mark@chromium.org>
      606a1d29
    • Tobias Sargeant's avatar
      Add new test data to Makefile.am · 1f7e5127
      Tobias Sargeant authored
      This should have been done as part of 2b3be5
      
      Bug: google-breakpad:746
      Change-Id: I7eae33166cff238d72293e659abc90e724b365dc
      Reviewed-on: https://chromium-review.googlesource.com/667102Reviewed-by: 's avatarMike Frysinger <vapier@chromium.org>
      1f7e5127
    • Mike Frysinger's avatar
      google_crashdump_uploader_test: integrate test into normal build · af3afd5d
      Mike Frysinger authored
      This is turned on in the gyp file, but not our automake build.  Include
      it there to make sure we don't break it and keep coverage up.
      
      Bug: google-breakpad:360
      Change-Id: If54ff04e62641b1c4a550db8a09f5ac09ff8765c
      Reviewed-on: https://chromium-review.googlesource.com/665798Reviewed-by: 's avatarMark Mentovai <mark@chromium.org>
      af3afd5d
  6. 18 Dec, 2017 1 commit
  7. 09 Nov, 2017 1 commit
  8. 16 Feb, 2017 1 commit
  9. 13 Feb, 2017 1 commit
  10. 25 Nov, 2016 1 commit
  11. 23 Nov, 2016 1 commit
  12. 25 Oct, 2016 1 commit
  13. 01 Sep, 2016 1 commit
  14. 06 Jun, 2016 1 commit
  15. 25 May, 2016 1 commit
  16. 04 May, 2016 1 commit
    • Yunlian Jiang's avatar
      Add debug fission support. · 764c21f7
      Yunlian Jiang authored
      This added debug fission support.
      It tries to find the dwp file from the debug dir /usr/lib/debug/*/debug
      and read symbols from them.
      
      Most of this patch comes from
      https://critique.corp.google.com/#review/52048295
      and some fixes after that.
      The elf_reader.cc comes from TOT google code. I just
      removed some google dependency.
      
      Current problems from this patch
      1: Some type mismatch: from uint8_t * to char *.
      2: Some hack to find the .dwp file. (replace .debug with .dwp)
      
      BUG=chromium:604440
      R=dehao@google.com, ivanpe@chromium.org
      
      Review URL: https://codereview.chromium.org/1884283002 .
      764c21f7
  17. 12 Apr, 2016 1 commit
    • Ted Mielczarek's avatar
      Fix a dependency issue in automake · 205b5ac6
      Ted Mielczarek authored
      Doing a `make -jN check` from a fresh build breaks (and has probably been
      broken for a while). linux_client_unittest_shlib is missing $(TEST_LIBS)
      from its _DEPENDENCIES. The automake manual says if _DEPENDENCIES are not
      specified they'll be computed from _LDADD, but we are specifying it and just
      leaving out $(TEST_LIBS).
      
      R=vapier@chromium.org
      BUG=
      
      Review URL: https://codereview.chromium.org/1870733005 .
      205b5ac6
  18. 05 Apr, 2016 1 commit
    • Ted Mielczarek's avatar
      Switch the Linux minidump writer to use MDCVInfoELF for CV data. · 6c8f80aa
      Ted Mielczarek authored
      This preserves full build ids in minidumps, which are useful for
      tracking down the right version of system libraries from Linux
      distributions.
      
      The default build id produced by GNU binutils' ld is a 160-bit SHA-1
      hash of some parts of the binary, which is exactly 20 bytes:
      https://sourceware.org/binutils/docs-2.26/ld/Options.html#index-g_t_002d_002dbuild_002did-292
      
      The bulk of the changes here are to change the signatures of the
      FileID methods to use a wasteful_vector instead of raw pointers, since
      build ids can be of arbitrary length.
      
      The previous change that added support for this in the processor code
      preserved the return value of `Minidump::debug_identifier()` as the
      current `GUID+age` treatment for backwards-compatibility, and exposed
      the full build id from `Minidump::code_identifier()`, which was
      previously stubbed out for Linux dumps. This change keeps the debug ID
      in the `dump_syms` output the same to match.
      
      R=mark@chromium.org, thestig@chromium.org
      BUG=
      
      Review URL: https://codereview.chromium.org/1688743002 .
      6c8f80aa
  19. 30 Mar, 2016 1 commit
  20. 17 Feb, 2016 1 commit
  21. 12 Feb, 2016 1 commit
  22. 06 Feb, 2016 1 commit