mirror of
https://git.suyu.dev/suyu/breakpad.git
synced 2025-12-25 16:54:43 +01:00
Open sourcing the Breakpad framework from Google.
A=many, many people R=nealsid, jeremy moskovich(from Chromium project) git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@322 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
parent
0abe34ce5d
commit
3ebdb1bd7a
49 changed files with 12695 additions and 22 deletions
|
|
@ -490,7 +490,6 @@ void *ExceptionHandler::WaitForMessage(void *exception_handler_class) {
|
|||
if (self->use_minidump_write_mutex_)
|
||||
pthread_mutex_unlock(&self->minidump_write_mutex_);
|
||||
} else {
|
||||
|
||||
// When forking a child process with the exception handler installed,
|
||||
// if the child crashes, it will send the exception back to the parent
|
||||
// process. The check for task == self_task() ensures that only
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ static void *SleepyFunction(void *) {
|
|||
while (1) {
|
||||
sleep(10000);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void Crasher() {
|
||||
|
|
@ -77,15 +78,14 @@ bool MDCallback(const char *dump_dir, const char *file_name,
|
|||
|
||||
fprintf(stdout, "Minidump: %s\n", path.c_str());
|
||||
// Indicate that we've handled the callback
|
||||
return true;
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int main(int argc, char * const argv[]) {
|
||||
char buffer[PATH_MAX];
|
||||
struct passwd *user = getpwuid(getuid());
|
||||
|
||||
// Home dir
|
||||
snprintf(buffer, sizeof(buffer), "/Users/%s/Desktop/", user->pw_name);
|
||||
snprintf(buffer, sizeof(buffer), "/tmp/");
|
||||
|
||||
string path(buffer);
|
||||
ExceptionHandler eh(path, NULL, MDCallback, NULL, true);
|
||||
|
|
@ -97,8 +97,8 @@ int main(int argc, char * const argv[]) {
|
|||
perror("pthread_create");
|
||||
}
|
||||
|
||||
// Dump a test
|
||||
eh.WriteMinidump();
|
||||
// // Dump a test
|
||||
// eh.WriteMinidump();
|
||||
|
||||
// Test the handler
|
||||
SoonToCrash();
|
||||
|
|
|
|||
|
|
@ -45,14 +45,13 @@ static bool doneWritingReport = false;
|
|||
static void *Reporter(void *) {
|
||||
char buffer[PATH_MAX];
|
||||
MinidumpGenerator md;
|
||||
struct passwd *user = getpwuid(getuid());
|
||||
|
||||
// Write it to the desktop
|
||||
snprintf(buffer,
|
||||
sizeof(buffer),
|
||||
"/Users/%s/Desktop/test.dmp",
|
||||
user->pw_name);
|
||||
|
||||
"/tmp/test.dmp");
|
||||
|
||||
|
||||
fprintf(stdout, "Writing %s\n", buffer);
|
||||
unlink(buffer);
|
||||
md.Write(buffer);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue