Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEugene Tarassov2014-02-12 13:26:43 -0500
committerEugene Tarassov2014-02-12 13:26:43 -0500
commit35c651155a17f121fcb6dee436bd1fd49e63d037 (patch)
treea7144a55fe5f711d5247579e55aca61878ccebcc
parent488e908e2429a77c5697c07a1dbbfea921a7d3df (diff)
downloadorg.eclipse.tcf.agent-35c651155a17f121fcb6dee436bd1fd49e63d037.tar.gz
org.eclipse.tcf.agent-35c651155a17f121fcb6dee436bd1fd49e63d037.tar.xz
org.eclipse.tcf.agent-35c651155a17f121fcb6dee436bd1fd49e63d037.zip
Bug 427901 - Missing ranges for a C++ application built with GCC 4.3.3
-rw-r--r--agent/tcf/services/dwarfcache.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/agent/tcf/services/dwarfcache.c b/agent/tcf/services/dwarfcache.c
index 8e1cb412..2378e39e 100644
--- a/agent/tcf/services/dwarfcache.c
+++ b/agent/tcf/services/dwarfcache.c
@@ -450,6 +450,8 @@ static void read_subscr_data(U2_T Form, ObjectInfo * Array) {
dio_SetPos(OrgPos);
}
+static void add_object_addr_ranges(ObjectInfo * info);
+
static void read_object_info(U2_T Tag, U2_T Attr, U2_T Form) {
static ObjectInfo * Info;
static U8_T Sibling;
@@ -506,10 +508,15 @@ static void read_object_info(U2_T Tag, U2_T Attr, U2_T Form) {
sCompUnit->mDesc = sUnitDesc;
sCache->mCompUnitsCnt++;
break;
+ case TAG_subprogram:
+ if (Info->mFlags & DOIF_specification &&
+ Info->mFlags & DOIF_low_pc &&
+ Info->u.mCode.mLowPC != 0) {
+ add_object_addr_ranges(Info);
+ } /* Fall through */
case TAG_global_subroutine:
case TAG_inlined_subroutine:
case TAG_subroutine:
- case TAG_subprogram:
case TAG_entry_point:
case TAG_pointer_type:
case TAG_mod_pointer:

Back to the top