aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/google_breakpad/processor/minidump.h2
-rw-r--r--src/processor/logging.cc8
-rw-r--r--src/processor/logging.h9
-rw-r--r--src/processor/minidump.cc15
4 files changed, 29 insertions, 5 deletions
diff --git a/src/google_breakpad/processor/minidump.h b/src/google_breakpad/processor/minidump.h
index a80a5efd..f3f77677 100644
--- a/src/google_breakpad/processor/minidump.h
+++ b/src/google_breakpad/processor/minidump.h
@@ -79,7 +79,9 @@
#ifndef GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_H__
#define GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_H__
+#ifndef _WIN32
#include <unistd.h>
+#endif
#include <iostream>
#include <map>
diff --git a/src/processor/logging.cc b/src/processor/logging.cc
index 8842df35..c58fb8dd 100644
--- a/src/processor/logging.cc
+++ b/src/processor/logging.cc
@@ -44,13 +44,21 @@
namespace google_breakpad {
+#ifdef _WIN32
+#define snprintf _snprintf
+#endif
+
LogStream::LogStream(std::ostream &stream, Severity severity,
const char *file, int line)
: stream_(stream) {
time_t clock;
time(&clock);
struct tm tm_struct;
+#ifdef _WIN32
+ localtime_s(&tm_struct, &clock);
+#else
localtime_r(&clock, &tm_struct);
+#endif
char time_string[20];
strftime(time_string, sizeof(time_string), "%Y-%m-%d %H:%M:%S", &tm_struct);
diff --git a/src/processor/logging.h b/src/processor/logging.h
index b638ff58..642506d5 100644
--- a/src/processor/logging.h
+++ b/src/processor/logging.h
@@ -68,6 +68,15 @@
namespace google_breakpad {
+// These are defined in Microsoft headers.
+#ifdef SEVERITY_ERROR
+#undef SEVERITY_ERROR
+#endif
+
+#ifdef ERROR
+#undef ERROR
+#endif
+
class LogStream {
public:
enum Severity {
diff --git a/src/processor/minidump.cc b/src/processor/minidump.cc
index 41e7cea6..3d42c428 100644
--- a/src/processor/minidump.cc
+++ b/src/processor/minidump.cc
@@ -40,14 +40,15 @@
#include <stdio.h>
#include <string.h>
#include <time.h>
-#include <unistd.h>
+
#ifdef _WIN32
#include <io.h>
typedef SSIZE_T ssize_t;
-#define open _open
-#define read _read
-#define lseek _lseek
+#define PRIx64 "llx"
+#define PRIx32 "lx"
+#define snprintf _snprintf
#else // _WIN32
+#include <unistd.h>
#define O_BINARY 0
#endif // _WIN32
@@ -1101,7 +1102,7 @@ void MinidumpMemoryRegion::SetDescriptor(MDMemoryDescriptor* descriptor) {
descriptor_ = descriptor;
valid_ = descriptor &&
descriptor_->memory.data_size <=
- numeric_limits<uint64_t>::max() -
+ numeric_limits<u_int64_t>::max() -
descriptor_->start_of_memory_range;
}
@@ -3694,7 +3695,11 @@ void Minidump::Print() {
printf(" stream_directory_rva = 0x%x\n", header_.stream_directory_rva);
printf(" checksum = 0x%x\n", header_.checksum);
struct tm timestruct;
+#ifdef _WIN32
+ gmtime_s(&timestruct, reinterpret_cast<time_t*>(&header_.time_date_stamp));
+#else
gmtime_r(reinterpret_cast<time_t*>(&header_.time_date_stamp), &timestruct);
+#endif
char timestr[20];
strftime(timestr, 20, "%Y-%m-%d %H:%M:%S", &timestruct);
printf(" time_date_stamp = 0x%x %s\n", header_.time_date_stamp,