* [commit/Ada] Bye bye ada-lang.c:function_name_from_pc
@ 2010-01-20 3:44 Joel Brobecker
0 siblings, 0 replies; only message in thread
From: Joel Brobecker @ 2010-01-20 3:44 UTC (permalink / raw)
To: gdb-patches
[-- Attachment #1: Type: text/plain, Size: 695 bytes --]
Hello,
While rebasing AdaCore sources against HEAD, I noticed a function
in ada-lang.c that seemed too generic to be there... Soon after,
I found another function in stack.c that does exactly the same.
So I deleted the function in ada-lang.c and used the one in stack.c
instead.
2010-01-20 Joel Brobecker <brobecker@adacore.com>
Get rid of ada-lang.c:function_name_from_pc.
* ada-lang.c: Add "stack.h" #include.
(function_name_from_pc): Delete.
(is_known_support_routine): Replace call to function_name_from_pc
by call to find_frame_funname.
(ada_unhandled_exception_name_addr_from_raise): Likewise.
Tested on x86_64-linux. Checked in.
--
Joel
[-- Attachment #2: ada-lang.diff --]
[-- Type: text/x-diff, Size: 2527 bytes --]
commit 171cd293190b61293cbaa76cdc775de44ab4b699
Author: brobecke <brobecke@f8352e7e-cb20-0410-8ce7-b5d9e71c585c>
Date: Wed Jan 20 03:28:14 2010 +0000
Get rid of ada-lang.c:function_name_from_pc.
* ada-lang.c: Add "stack.h" #include.
(function_name_from_pc): Delete.
(is_known_support_routine): Replace call to function_name_from_pc
by call to find_frame_funname.
(ada_unhandled_exception_name_addr_from_raise): Likewise.
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index f00c06f..40b70ab 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -56,6 +56,7 @@
#include "source.h"
#include "observer.h"
#include "vec.h"
+#include "stack.h"
/* Define whether or not the C operator '/' truncates towards zero for
differently signed operands (truncation direction is undefined in C).
@@ -10150,21 +10151,6 @@ ada_executable_changed_observer (void)
exception_info = NULL;
}
-/* Return the name of the function at PC, NULL if could not find it.
- This function only checks the debugging information, not the symbol
- table. */
-
-static char *
-function_name_from_pc (CORE_ADDR pc)
-{
- char *func_name;
-
- if (!find_pc_partial_function (pc, &func_name, NULL, NULL))
- return NULL;
-
- return func_name;
-}
-
/* True iff FRAME is very likely to be that of a function that is
part of the runtime system. This is all very heuristic, but is
intended to be used as advice as to what frames are uninteresting
@@ -10175,6 +10161,7 @@ is_known_support_routine (struct frame_info *frame)
{
struct symtab_and_line sal;
char *func_name;
+ enum language func_lang;
int i;
/* If this code does not have any debugging information (no symtab),
@@ -10210,7 +10197,7 @@ is_known_support_routine (struct frame_info *frame)
/* Check whether the function is a GNAT-generated entity. */
- func_name = function_name_from_pc (get_frame_address_in_block (frame));
+ find_frame_funname (frame, &func_name, &func_lang);
if (func_name == NULL)
return 1;
@@ -10275,8 +10262,10 @@ ada_unhandled_exception_name_addr_from_raise (void)
while (fi != NULL)
{
- const char *func_name =
- function_name_from_pc (get_frame_address_in_block (fi));
+ char *func_name;
+ enum language func_lang;
+
+ find_frame_funname (fi, &func_name, &func_lang);
if (func_name != NULL
&& strcmp (func_name, exception_info->catch_exception_sym) == 0)
break; /* We found the frame we were looking for... */
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2010-01-20 3:44 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-01-20 3:44 [commit/Ada] Bye bye ada-lang.c:function_name_from_pc Joel Brobecker
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).