patches/bug-buddy-01-use-pstack.diff
author yippi
Mon, 27 Sep 2010 21:07:51 +0000
changeset 20108 51df67ca9307
parent 14754 965bc8223086
permissions -rw-r--r--
I had these modules listed as being owned by me, but they are really owned by wangke, correcting.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
     1
/jds/bin/diff -uprN bug-buddy-2.25.2.old/src/bug-buddy.c bug-buddy-2.25.2/src/bug-buddy.c
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
     2
--- bug-buddy-2.25.2.old/src/bug-buddy.c	2008-12-11 12:35:33.705860000 +0000
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
     3
+++ bug-buddy-2.25.2/src/bug-buddy.c	2008-12-11 12:38:26.475348000 +0000
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
     4
@@ -1096,19 +1096,30 @@ gdb_insert_text (const gchar *stacktrace
13735
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
     5
 	GtkTextView *text_view;
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
     6
 	GtkTextIter end;
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
     7
 	GtkTextBuffer *buffer;
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
     8
+    char *gdb = g_find_program_in_path ("gdb");
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
     9
+    char *pstack = g_find_program_in_path ("pstack");
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    10
 
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    11
-	/* FIXME: These strings are gdb specific, we should add here also dbx */
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    12
-	const char *bt_step1 = "#1";
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    13
-	const char *bt_step2 = "#2";
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    14
-	const char *bt_step3 = "#3";
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    15
-
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    16
-	if (!g_strrstr (stacktrace, bt_step1) &&
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    17
-            !g_strrstr (stacktrace, bt_step2) &&
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    18
-            !g_strrstr (stacktrace, bt_step3)) {
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    19
-		return FALSE;
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    20
-	}
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    21
-
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    22
-
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    23
+#if defined(sun) && defined(__SVR4)
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    24
+    if (pstack) {
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    25
+        g_free (gdb);
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    26
+        gdb = NULL;
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    27
+    }
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
    28
+#endif /* #if defined(sun) && defined(__SVR4) */
13735
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    29
+
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    30
+    if (gdb) {
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    31
+	    /* FIXME: These strings are gdb specific, we should add here also dbx */
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    32
+	    const char *bt_step1 = "#1";
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    33
+	    const char *bt_step2 = "#2";
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    34
+	    const char *bt_step3 = "#3";
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    35
+
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    36
+	    if (!g_strrstr (stacktrace, bt_step1) &&
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    37
+                !g_strrstr (stacktrace, bt_step2) &&
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    38
+                !g_strrstr (stacktrace, bt_step3)) {
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    39
+            g_free (gdb);
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    40
+            g_free (pstack);
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    41
+		    return FALSE;
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    42
+	    }
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    43
+    }
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    44
 
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    45
 	text_view = GTK_TEXT_VIEW (gtk_builder_get_object (ui, "gdb-text"));
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    46
 	buffer = gtk_text_view_get_buffer (text_view);
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
    47
@@ -1117,6 +1128,9 @@ gdb_insert_text (const gchar *stacktrace
13735
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    48
 	/* add the stacktrace to the GtkTextView */
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    49
 	gtk_text_buffer_insert (buffer, &end, stacktrace, strlen (stacktrace));
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    50
 
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    51
+    g_free (gdb);
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    52
+    g_free (pstack);
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    53
+
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    54
 	return TRUE;
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    55
 }
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
    56
 
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
    57
/jds/bin/diff -uprN bug-buddy-2.25.2.old/src/gdb-buddy.c bug-buddy-2.25.2/src/gdb-buddy.c
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
    58
--- bug-buddy-2.25.2.old/src/gdb-buddy.c	2008-12-11 12:35:33.723199000 +0000
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
    59
+++ bug-buddy-2.25.2/src/gdb-buddy.c	2008-12-11 12:45:14.364972000 +0000
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
    60
@@ -210,11 +210,9 @@ gdb_get_trace (const gchar *app, int pid
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    61
 	GIOChannel *ioc;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    62
 	GError *error = NULL;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    63
 	GdbData *gdb_data = NULL;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    64
-	char *args[] = { "gdb",
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    65
-			 "--batch", 
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    66
-			 "--quiet",
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    67
-			 "--command=" BUDDY_DATADIR "/gdb-cmd",
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    68
-			 NULL, NULL, NULL };
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    69
+    char *args[7];
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    70
+    char *gdb = NULL;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    71
+    char *pstack = NULL;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    72
 
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    73
 	g_return_val_if_fail (app != NULL, 0);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    74
 	g_return_val_if_fail (*app != '\0', 0);
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
    75
@@ -225,6 +223,29 @@ gdb_get_trace (const gchar *app, int pid
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    76
 
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    77
 	d (g_print ("app=%s\n", app));
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    78
 
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    79
+#if defined(sun) && defined(__SVR4)
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    80
+    pstack = g_find_program_in_path ("pstack");
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    81
+
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    82
+    if (pstack) {
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    83
+        args[0] = pstack;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    84
+        args[2] = args[3] = args[4] = args[5] = args[6] = NULL;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    85
+    } else {
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    86
+        gdb = g_find_program_in_path ("gdb");
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    87
+        args[0] = gdb;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    88
+        args[1] = "--batch";
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    89
+        args[2] = "--quiet";
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    90
+        args[3] = "--command=" BUDDY_DATADIR "/gdb-cmd";
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    91
+        args[4] = args[5] = args[6] = NULL;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    92
+    }
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    93
+#else
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    94
+    gdb = g_find_program_in_path ("gdb");
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    95
+    args[0] = gdb;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    96
+    args[1] = "--batch";
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    97
+    args[2] = "--quiet";
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    98
+    args[3] = "--command=" BUDDY_DATADIR "/gdb-cmd";
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
    99
+    args[4] = args[5] = args[6] = NULL;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   100
+#endif /* defined(sun) && defined(__SVR4) */
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   101
+
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   102
 	/* apply a SIGCONT to the process */
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   103
 	kill (pid, SIGCONT);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   104
 
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   105
@@ -249,30 +270,38 @@ gdb_get_trace (const gchar *app, int pid
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   106
 		}
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   107
 	}
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   108
 
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   109
-	args[0] = g_find_program_in_path ("gdb");
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   110
-	args[4] = long_app;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   111
+    if (!pstack)
13735
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
   112
+	    args[4] = long_app;
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   113
 
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   114
 	if (args[0] == NULL) {
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   115
 		d(g_message ("Path: %s", getenv ("PATH")));
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   116
 		g_free (long_app);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   117
 		g_set_error (err, GDB_BUDDY_ERROR, GDB_BUDDY_GDB_NOT_FOUND, 
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   118
-			     _("GDB could not be found on your system. "
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   119
-			       "Debugging information will not be obtained."));
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   120
+			     _("%s could not be found on your system. "
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   121
+			       "Debugging information will not be obtained."),
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   122
+                    pstack != NULL ? "pstack" : "GDB");
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   123
+        g_free (args[0]);
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   124
+        g_free (long_app);
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   125
 		return 0;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   126
 	} 
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   127
 	
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   128
 	d(g_message ("About to debug '%s'", long_app));
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   129
 	
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   130
-	if (!g_file_test (BUDDY_DATADIR "/gdb-cmd", G_FILE_TEST_EXISTS)) {
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   131
-		g_set_error (err, GDB_BUDDY_ERROR, GDB_BUDDY_GDB_CMD_NOT_FOUND, 
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   132
-			     _("Could not find the gdb-cmd file.\n"
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   133
-			       "Please try reinstalling Bug Buddy."));
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   134
-		g_free (args[0]);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   135
-		g_free (long_app);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   136
-		return 0;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   137
+    if (gdb) {
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   138
+	    if (!g_file_test (BUDDY_DATADIR "/gdb-cmd", G_FILE_TEST_EXISTS)) {
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   139
+		    g_set_error (err, GDB_BUDDY_ERROR, GDB_BUDDY_GDB_CMD_NOT_FOUND, 
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   140
+			        _("Could not find the gdb-cmd file.\n"
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   141
+			        "Please try reinstalling Bug Buddy."));
13735
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
   142
+		    g_free (args[0]);
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   143
+		    g_free (long_app);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   144
+		    return 0;
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   145
+        }
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   146
 	}
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   147
 	
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   148
-	args[5] = g_strdup_printf ("%d", pid);
13735
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
   149
+    if (pstack)
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   150
+	    args[1] = g_strdup_printf ("%d", pid);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   151
+    else
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   152
+	    args[5] = g_strdup_printf ("%d", pid);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   153
 	
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   154
 	if (!g_spawn_async_with_pipes (NULL, args, NULL, 0, NULL, NULL,
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   155
 				       &gdb_pid,
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   156
@@ -284,7 +313,10 @@ gdb_get_trace (const gchar *app, int pid
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   157
 			     error->message);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   158
 		g_error_free (error);
13735
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
   159
 		g_free (args[0]);
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   160
-		g_free (args[5]);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   161
+        if (pstack)
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   162
+		    g_free (args[1]);
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   163
+        else
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   164
+		    g_free (args[5]);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   165
 		g_free (long_app);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   166
 		return 0;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   167
 	} 
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   168
@@ -309,7 +341,10 @@ gdb_get_trace (const gchar *app, int pid
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   169
 	g_io_channel_unref (ioc);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   170
 
13735
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
   171
 	g_free (args[0]);
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   172
-	g_free (args[5]);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   173
+    if (pstack)
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   174
+	    g_free (args[1]);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   175
+    else
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   176
+	    g_free (args[5]);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   177
 	g_free (long_app);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   178
 
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   179
 	return source_id;
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   180
/jds/bin/diff -uprN bug-buddy-2.25.2.old/gnome-breakpad/gnome-breakpad.cc bug-buddy-2.25.2/gnome-breakpad/gnome-breakpad.cc
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   181
--- bug-buddy-2.25.2.old/gnome-breakpad/gnome-breakpad.cc	2008-12-11 12:35:33.736965000 +0000
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   182
+++ bug-buddy-2.25.2/gnome-breakpad/gnome-breakpad.cc	2008-12-11 12:55:07.314379000 +0000
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   183
@@ -379,25 +379,50 @@ run_bug_buddy (const gchar *appname, pid
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   184
 static bool
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   185
 run_gdb (const gchar *appname, pid_t pid)
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   186
 {
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   187
-	gchar *exec_str;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   188
+	gchar *exec_str = NULL;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   189
 	gchar *title;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   190
 	gboolean res;
6182
8241392b52fa 2005-10-26 Glynn Foster <[email protected]>
gman
parents:
diff changeset
   191
 	GError *error = NULL;
13735
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
   192
+    gchar *gdb = NULL;
10387
94368e4c78a6 * base-specs/bug-buddy.spec : Re-Bump to 2.19.0
mattman
parents: 6182
diff changeset
   193
 
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   194
 	title = g_strdup_printf ("Debugging %s", appname);
10387
94368e4c78a6 * base-specs/bug-buddy.spec : Re-Bump to 2.19.0
mattman
parents: 6182
diff changeset
   195
 
11198
02b533546498 * patches/bug-buddy-01-use-pstack.diff : Update #define check
mattman
parents: 10623
diff changeset
   196
+#if defined(sun) && defined(__SVR4)
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   197
+	gdb = g_find_program_in_path("gdb");;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   198
+	if (gdb) {
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   199
+		exec_str = g_strdup_printf("gnome-terminal "
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   200
+				 "--title=\"%s\" "
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   201
+				 "--disable-factory "
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   202
+				 "--command=\"gdb %s %d\"",
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   203
+				title, appname, (int)pid);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   204
+		g_free (gdb);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   205
+	} else {
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   206
+		gchar *dbx = g_find_program_in_path("dbx");
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   207
+		if (dbx) {
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   208
+			exec_str = g_strdup_printf("gnome-terminal "
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   209
+				 	"--title=\"%s\" "
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   210
+				 	"--disable-factory "
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   211
+				 	"--command=\"dbx /proc/%d/object/a.out %d\"",
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   212
+					title, (int)pid, (int)pid);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   213
+		}
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   214
+		g_free (dbx);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   215
+	}
12211
10f673786ff5 * patches/bug-buddy-01-use-pstack : Update patch so that the default
mattman
parents: 11198
diff changeset
   216
+#else
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   217
 	exec_str = g_strdup_printf("gnome-terminal "
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   218
 				 "--title=\"%s\" "
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   219
 				 "--disable-factory "
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   220
 				 "--command=\"gdb %s %d\"",
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   221
 				title, appname, (int)pid);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   222
-				g_free (title);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   223
-	res = g_spawn_command_line_sync (exec_str, NULL, NULL,
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   224
-					 NULL, &error);
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   225
-	g_free(exec_str);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   226
-	if (!res) {
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   227
-		g_warning("Couldn't run debugger\n");
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   228
-		return false;
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   229
+#endif /* defined(sun) && defined(__SVR4) */
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   230
+	g_free (title);
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   231
+    if (exec_str) {
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   232
+	    res = g_spawn_command_line_sync (exec_str, NULL, NULL,
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   233
+					    NULL, &error);
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   234
+	    g_free(exec_str);
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   235
+	    if (!res) {
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   236
+		    g_warning("Couldn't run debugger\n");
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   237
+		    return false;
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   238
+	    }
6182
8241392b52fa 2005-10-26 Glynn Foster <[email protected]>
gman
parents:
diff changeset
   239
 	}
8241392b52fa 2005-10-26 Glynn Foster <[email protected]>
gman
parents:
diff changeset
   240
 
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   241
 	return true;
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   242
@@ -406,8 +431,12 @@ run_gdb (const gchar *appname, pid_t pid
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   243
 static void
13735
c571f541fde7 * base-specs/bug-buddy.spec: Bump to 2.24.0
mattman
parents: 13341
diff changeset
   244
 check_if_gdb ()
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   245
 {
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   246
-	char *mypath;
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   247
-	gchar *gdb;
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   248
+	char *mypath = NULL;
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   249
+	gchar *gdb = NULL;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   250
+#if defined(sun) && defined(__SVR4)
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   251
+	gchar *pstack = NULL;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   252
+	gchar *dbx = NULL;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   253
+#endif /* defined(sun) && defined(__SVR4) */
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   254
 	bool has_debug_symbols = false;
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   255
 	char *filename;
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   256
 	gchar *appname;
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   257
@@ -421,22 +450,40 @@ check_if_gdb ()
6182
8241392b52fa 2005-10-26 Glynn Foster <[email protected]>
gman
parents:
diff changeset
   258
 
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   259
 	appname = g_get_prgname ();
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   260
 	pid = getpid ();
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   261
+
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   262
+#if defined(sun) && defined(__SVR4)
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   263
+	gdb = g_find_program_in_path ("gdb");
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   264
+	pstack = g_find_program_in_path ("pstack");
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   265
+	dbx = g_find_program_in_path ("dbx");
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   266
+
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   267
+	if ((gdb || dbx) && g_getenv("GNOME_HACKER")) {
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   268
+#else
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   269
 	gdb = g_find_program_in_path ("gdb");
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   270
 
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   271
 	if (gdb && g_getenv("GNOME_HACKER")) {
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   272
+#endif /* defined(sun) && defined(__SVR4) */
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   273
 		res = run_gdb (appname, pid);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   274
 		if (!res)
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   275
 			_exit (1);
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   276
 		_exit(0);
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   277
 	}
10389
e89ceeb3b387 * base-specs/bug-buddy.spec : Bump to 2.19.91
mattman
parents: 10387
diff changeset
   278
 	
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   279
+#if defined(sun) && defined(__SVR4)
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   280
+	mypath = g_strdup_printf ("/proc/%d/object/a.out", (int)pid);
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   281
+#else
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   282
 	mypath = g_file_read_link ("/proc/self/exe", NULL);
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   283
+#endif /* defined(sun) && defined(__SVR4) */
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   284
+
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   285
 	if (mypath)
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   286
 		has_debug_symbols = elf_has_debug_symbols (mypath);
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   287
 
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   288
 	g_free (mypath);
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   289
 
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   290
+#if defined(sun) && defined(__SVR4)
14754
965bc8223086 * base-specs/bug-buddy.spec : Re-worked patches 01, and 02 because
mattman
parents: 13735
diff changeset
   291
+    if (bugbuddy && (gdb || pstack) && has_debug_symbols) {
13341
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   292
+#else
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   293
 	if (bugbuddy && gdb && has_debug_symbols) {
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   294
+#endif /* defined(sun) && defined(__SVR4) */
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   295
 		res = run_bug_buddy (appname, pid, NULL);
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   296
 		if (!res)
846dca93b6b6 * base-specs/bug-buddy.spec : Based on community feedback removed one
mattman
parents: 12218
diff changeset
   297
 			_exit (1);