From 6ac9ef80f54f5364a49ad11fe7d6bd8cb97a54a6 Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Mon, 18 Jun 2012 20:31:26 +0000 Subject: * block.c (find_block_in_blockvector): Make explicit the fact that we ignore GLOBAL_BLOCK. --- gdb/block.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'gdb/block.c') diff --git a/gdb/block.c b/gdb/block.c index 1503730..a0f82ec 100644 --- a/gdb/block.c +++ b/gdb/block.c @@ -118,8 +118,13 @@ find_block_in_blockvector (struct blockvector *bl, CORE_ADDR pc) return addrmap_find (BLOCKVECTOR_MAP (bl), pc); /* Otherwise, use binary search to find the last block that starts - before PC. */ - bot = 0; + before PC. + Note: GLOBAL_BLOCK is block 0, STATIC_BLOCK is block 1. + They both have the same START,END values. + Historically this code would choose STATIC_BLOCK over GLOBAL_BLOCK but the + fact that this choice was made was subtle, now we make it explicit. */ + gdb_assert (BLOCKVECTOR_NBLOCKS (bl) >= 2); + bot = STATIC_BLOCK; top = BLOCKVECTOR_NBLOCKS (bl); while (top - bot > 1) @@ -134,7 +139,7 @@ find_block_in_blockvector (struct blockvector *bl, CORE_ADDR pc) /* Now search backward for a block that ends after PC. */ - while (bot >= 0) + while (bot >= STATIC_BLOCK) { b = BLOCKVECTOR_BLOCK (bl, bot); if (BLOCK_END (b) > pc) -- cgit v1.1