diff options
author | Doug Evans <dje@google.com> | 2012-06-18 20:31:26 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2012-06-18 20:31:26 +0000 |
commit | 6ac9ef80f54f5364a49ad11fe7d6bd8cb97a54a6 (patch) | |
tree | 0cc2bdb7bc327283de29fde7a7538b65caa4f17d /gdb | |
parent | 4cd182151a5fab5b5ac3a14460534c059ed5e22c (diff) | |
download | gdb-6ac9ef80f54f5364a49ad11fe7d6bd8cb97a54a6.zip gdb-6ac9ef80f54f5364a49ad11fe7d6bd8cb97a54a6.tar.gz gdb-6ac9ef80f54f5364a49ad11fe7d6bd8cb97a54a6.tar.bz2 |
* block.c (find_block_in_blockvector): Make explicit the fact that we
ignore GLOBAL_BLOCK.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/block.c | 11 |
2 files changed, 13 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2eea104..821c8d0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2012-06-18 Doug Evans <dje@google.com> + + * block.c (find_block_in_blockvector): Make explicit the fact that we + ignore GLOBAL_BLOCK. + 2012-06-18 Tom Tromey <tromey@redhat.com> * c-exp.y (operator): Remove trailing space after "delete" and 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) |