|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
--- ./gdb/linespec.c 2008-08-27 00:27:33.000000000 +0200
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+++ ./gdb/linespec.c 2008-08-27 00:53:16.000000000 +0200
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
@@ -284,6 +284,15 @@ find_methods (struct type *t, char *name
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
}
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
static int
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+add_minsym_members_compar (const void *ap, const void *bp)
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+{
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ const char *a = *(const char **) ap;
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ const char *b = *(const char **) bp;
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ return strcmp (a, b);
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+}
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+static int
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
add_minsym_members (const char *class_name,
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
const char *member_name,
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
struct minimal_symbol **msym_arr)
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
@@ -293,6 +302,7 @@ add_minsym_members (const char *class_na
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
int i;
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
int comp_len;
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
int counter = 0;
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ int src_i, dst_i;
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
/* To find the member, we first cheat and use symbol completion.
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
This will give us a list of all the member names including
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
@@ -307,6 +317,28 @@ add_minsym_members (const char *class_na
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
strcat (completion_name, "(");
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
list = make_symbol_completion_list (completion_name,
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
completion_name+1);
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ if (list == NULL || list[0] == NULL)
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ {
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ xfree (completion_name);
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ return 0;
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ /* Make the list entries unique - Multi-PC breakpoints are already resolved
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ by GDB-6.8+. */
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ counter = 0;
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ while (list && list[counter] != NULL)
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ counter++;
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ qsort (list, counter, sizeof (*list), add_minsym_members_compar);
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ src_i = dst_i = 0;
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ while (src_i + 1 < counter)
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ {
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ if (strcmp (list[src_i], list[src_i + 1]) != 0)
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ list[dst_i++] = list[src_i];
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ src_i++;
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ list[dst_i++] = list[src_i++];
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ gdb_assert (list[src_i] == NULL);
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+ list[dst_i] = 0;
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
/* Now that we have the list, we generate an array of their
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
corresponding minimal symbols. */
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
@@ -319,6 +351,8 @@ add_minsym_members (const char *class_na
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
xfree (list);
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+#if 0 /* Multi-PC breakpoints are already resolved by GDB-6.8+. */
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
/* In the case of constructors, there may be in-charge vs not-in-charge
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
constructors. Check for names with $base which indicates not-in-charge
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
constructors. */
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
@@ -353,6 +387,8 @@ add_minsym_members (const char *class_na
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
}
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
xfree (list);
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+#endif /* Multi-PC breakpoints are already resolved by GDB-6.8+. */
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
+
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
xfree (completion_name);
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
|
|
![](https://seccdn.libravatar.org/avatar/fec05c4ec364a789aeda37b99c85d1db48b437c393d3d7c17be8d076c0f70f67?s=16&d=retro) |
e3c8b47 |
return counter;
|