aboutsummaryrefslogtreecommitdiff
path: root/src/client/windows/crash_generation/client_info.h
diff options
context:
space:
mode:
authordoshimun <doshimun@4c0a9323-5329-0410-9bdc-e9ce6186880e>2008-05-05 20:03:56 +0000
committerdoshimun <doshimun@4c0a9323-5329-0410-9bdc-e9ce6186880e>2008-05-05 20:03:56 +0000
commit0ded3d718f4b090d106014bb0ea9dbb7af4e1d81 (patch)
treec17841e1e075b5d449ed8b63b2a339d6856d20b7 /src/client/windows/crash_generation/client_info.h
parentIssue 261/262: 64-bit bug fix when iterating through load commands of a 64-bi... (diff)
downloadbreakpad-0ded3d718f4b090d106014bb0ea9dbb7af4e1d81.tar.xz
Add a way for the client apps to specify custom information in case of out-of-process
scenarios that the OOP server can use in whatever way it wants to. Fix a bug in CrashGenerationserver where CreateNamedPipe failure was not checked correctly. TODO in near future: Add a custom stream to minidump files for the custom information. git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@267 4c0a9323-5329-0410-9bdc-e9ce6186880e
Diffstat (limited to 'src/client/windows/crash_generation/client_info.h')
-rw-r--r--src/client/windows/crash_generation/client_info.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/client/windows/crash_generation/client_info.h b/src/client/windows/crash_generation/client_info.h
index 9956c47a..db3f05e9 100644
--- a/src/client/windows/crash_generation/client_info.h
+++ b/src/client/windows/crash_generation/client_info.h
@@ -32,7 +32,9 @@
#include <Windows.h>
#include <DbgHelp.h>
+#include "client/windows/common/ipc_protocol.h"
#include "google_breakpad/common/minidump_format.h"
+#include "processor/scoped_ptr.h"
namespace google_breakpad {
@@ -49,7 +51,8 @@ class ClientInfo {
MINIDUMP_TYPE dump_type,
DWORD* thread_id,
EXCEPTION_POINTERS** ex_info,
- MDRawAssertionInfo* assert_info);
+ MDRawAssertionInfo* assert_info,
+ const CustomClientInfo& custom_client_info);
~ClientInfo();
@@ -85,6 +88,10 @@ class ClientInfo {
bool Initialize();
bool GetClientExceptionInfo(EXCEPTION_POINTERS** ex_info) const;
bool GetClientThreadId(DWORD* thread_id) const;
+ // Reads the custom information from the client process address space.
+ bool PopulateCustomInfo();
+ // Returns the client custom information.
+ int GetCustomInfo(CustomInfoEntry const** custom_info) const;
private:
// Crash generation server.
@@ -113,6 +120,14 @@ class ClientInfo {
// in the address space of another process.
MDRawAssertionInfo* assert_info_;
+ // Custom information about the client.
+ CustomClientInfo custom_client_info_;
+
+ // Contains the custom client info entries read from the client process
+ // memory. This will be populated only if the method GetClientCustomInfo
+ // is called.
+ scoped_array<CustomInfoEntry> custom_info_entries_;
+
// Address of a variable in the client process address space that
// will contain the thread id of the crashing client thread.
//