mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-19 09:14:14 +08:00
gdb: remove BLOCKVECTOR_MAP macro
Replace with equivalent methods. Change-Id: I4e56c76dfc363c1447686fb29c4212ea18b4dba0
This commit is contained in:
@ -138,8 +138,8 @@ find_block_in_blockvector (const struct blockvector *bl, CORE_ADDR pc)
|
|||||||
|
|
||||||
/* If we have an addrmap mapping code addresses to blocks, then use
|
/* If we have an addrmap mapping code addresses to blocks, then use
|
||||||
that. */
|
that. */
|
||||||
if (BLOCKVECTOR_MAP (bl))
|
if (bl->map () != nullptr)
|
||||||
return (const struct block *) addrmap_find (BLOCKVECTOR_MAP (bl), pc);
|
return (const struct block *) addrmap_find (bl->map (), pc);
|
||||||
|
|
||||||
/* Otherwise, use binary search to find the last block that starts
|
/* Otherwise, use binary search to find the last block that starts
|
||||||
before PC.
|
before PC.
|
||||||
|
18
gdb/block.h
18
gdb/block.h
@ -296,12 +296,24 @@ struct blockvector
|
|||||||
const struct block *static_block () const
|
const struct block *static_block () const
|
||||||
{ return this->block (STATIC_BLOCK); }
|
{ return this->block (STATIC_BLOCK); }
|
||||||
|
|
||||||
|
/* Return the address -> block map of this blockvector. */
|
||||||
|
addrmap *map ()
|
||||||
|
{ return m_map; }
|
||||||
|
|
||||||
|
/* Const version of the above. */
|
||||||
|
const addrmap *map () const
|
||||||
|
{ return m_map; }
|
||||||
|
|
||||||
|
/* Set this blockvector's address -> block map. */
|
||||||
|
void set_map (addrmap *map)
|
||||||
|
{ m_map = map; }
|
||||||
|
|
||||||
|
private:
|
||||||
/* An address map mapping addresses to blocks in this blockvector.
|
/* An address map mapping addresses to blocks in this blockvector.
|
||||||
This pointer is zero if the blocks' start and end addresses are
|
This pointer is zero if the blocks' start and end addresses are
|
||||||
enough. */
|
enough. */
|
||||||
struct addrmap *map;
|
struct addrmap *m_map;
|
||||||
|
|
||||||
private:
|
|
||||||
/* Number of blocks in the list. */
|
/* Number of blocks in the list. */
|
||||||
int m_num_blocks;
|
int m_num_blocks;
|
||||||
|
|
||||||
@ -309,8 +321,6 @@ private:
|
|||||||
struct block *m_blocks[1];
|
struct block *m_blocks[1];
|
||||||
};
|
};
|
||||||
|
|
||||||
#define BLOCKVECTOR_MAP(blocklist) ((blocklist)->map)
|
|
||||||
|
|
||||||
/* Return the objfile of BLOCK, which must be non-NULL. */
|
/* Return the objfile of BLOCK, which must be non-NULL. */
|
||||||
|
|
||||||
extern struct objfile *block_objfile (const struct block *block);
|
extern struct objfile *block_objfile (const struct block *block);
|
||||||
|
@ -457,10 +457,10 @@ buildsym_compunit::make_blockvector ()
|
|||||||
/* If we needed an address map for this symtab, record it in the
|
/* If we needed an address map for this symtab, record it in the
|
||||||
blockvector. */
|
blockvector. */
|
||||||
if (m_pending_addrmap != nullptr && m_pending_addrmap_interesting)
|
if (m_pending_addrmap != nullptr && m_pending_addrmap_interesting)
|
||||||
BLOCKVECTOR_MAP (blockvector)
|
blockvector->set_map
|
||||||
= addrmap_create_fixed (m_pending_addrmap, &m_objfile->objfile_obstack);
|
(addrmap_create_fixed (m_pending_addrmap, &m_objfile->objfile_obstack));
|
||||||
else
|
else
|
||||||
BLOCKVECTOR_MAP (blockvector) = 0;
|
blockvector->set_map (nullptr);
|
||||||
|
|
||||||
/* Some compilers output blocks in the wrong order, but we depend on
|
/* Some compilers output blocks in the wrong order, but we depend on
|
||||||
their being in the right order so we can binary search. Check the
|
their being in the right order so we can binary search. Check the
|
||||||
|
@ -286,11 +286,10 @@ block_starting_point_at (CORE_ADDR pc, const struct block *block)
|
|||||||
const struct block *new_block;
|
const struct block *new_block;
|
||||||
|
|
||||||
bv = blockvector_for_pc (pc, NULL);
|
bv = blockvector_for_pc (pc, NULL);
|
||||||
if (BLOCKVECTOR_MAP (bv) == NULL)
|
if (bv->map () == nullptr)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
new_block = (const struct block *) addrmap_find (BLOCKVECTOR_MAP (bv),
|
new_block = (const struct block *) addrmap_find (bv->map (), pc - 1);
|
||||||
pc - 1);
|
|
||||||
if (new_block == NULL)
|
if (new_block == NULL)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
|
@ -562,7 +562,7 @@ finalize_symtab (struct gdb_symtab *stab, struct objfile *objfile)
|
|||||||
|
|
||||||
/* At the end of this function, (begin, end) will contain the PC range this
|
/* At the end of this function, (begin, end) will contain the PC range this
|
||||||
entire blockvector spans. */
|
entire blockvector spans. */
|
||||||
BLOCKVECTOR_MAP (bv) = NULL;
|
bv->set_map (nullptr);
|
||||||
begin = stab->blocks.front ().begin;
|
begin = stab->blocks.front ().begin;
|
||||||
end = stab->blocks.front ().end;
|
end = stab->blocks.front ().end;
|
||||||
bv->set_num_blocks (actual_nblocks);
|
bv->set_num_blocks (actual_nblocks);
|
||||||
|
@ -667,8 +667,8 @@ objfile_relocate1 (struct objfile *objfile,
|
|||||||
struct blockvector *bv = cust->blockvector ();
|
struct blockvector *bv = cust->blockvector ();
|
||||||
int block_line_section = cust->block_line_section ();
|
int block_line_section = cust->block_line_section ();
|
||||||
|
|
||||||
if (BLOCKVECTOR_MAP (bv))
|
if (bv->map () != nullptr)
|
||||||
addrmap_relocate (BLOCKVECTOR_MAP (bv), delta[block_line_section]);
|
addrmap_relocate (bv->map (), delta[block_line_section]);
|
||||||
|
|
||||||
for (block *b : bv->blocks ())
|
for (block *b : bv->blocks ())
|
||||||
{
|
{
|
||||||
|
@ -2987,9 +2987,9 @@ find_pc_sect_compunit_symtab (CORE_ADDR pc, struct obj_section *section)
|
|||||||
if (!in_range_p)
|
if (!in_range_p)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (BLOCKVECTOR_MAP (bv))
|
if (bv->map () != nullptr)
|
||||||
{
|
{
|
||||||
if (addrmap_find (BLOCKVECTOR_MAP (bv), pc) == nullptr)
|
if (addrmap_find (bv->map (), pc) == nullptr)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
return cust;
|
return cust;
|
||||||
|
Reference in New Issue
Block a user