diff options
-rw-r--r-- | agent/tcf/services/dwarfcache.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/agent/tcf/services/dwarfcache.c b/agent/tcf/services/dwarfcache.c index 16272b7e..9e71e41a 100644 --- a/agent/tcf/services/dwarfcache.c +++ b/agent/tcf/services/dwarfcache.c @@ -868,7 +868,9 @@ static void load_addr_ranges(void) { ELF_Section * size_sec = NULL; ContextAddress addr = (ContextAddress)dio_ReadAddressX(&addr_sec, addr_size); ContextAddress size = (ContextAddress)dio_ReadAddressX(&size_sec, addr_size); - if (addr == 0 && size == 0) break; + /* GCC 4.1.2 can generate 'empty entries' at the + * beginning of the list ! */ + if (addr == 0 && size == 0 && (dio_GetPos()==next)) break; if (size == 0) continue; add_addr_range(addr_sec, sCompUnit, addr, size); } |