1 /* extracted from gdb sources */
3 typedef unsigned long long CORE_ADDR
;
8 struct blockvector
*blockvector
;
21 CORE_ADDR startaddr
, endaddr
;
22 struct symbol
*function
;
23 struct block
*superblock
;
24 unsigned char gcc_compile_flag
;
26 struct symbol syms
[1];
31 struct block
*block
[2];
34 struct blockvector
*blockvector_for_pc_sect(register CORE_ADDR pc
,
35 struct symtab
*symtab
)
37 register struct block
*b
;
38 register int bot
, top
, half
;
39 struct blockvector
*bl
;
41 bl
= symtab
->blockvector
;
49 half
= (top
- bot
+ 1) >> 1;
50 b
= bl
->block
[bot
+ half
];
51 if (b
->startaddr
<= pc
)
71 struct block a
= { 0, 0x10000, 0, 0, 1, 20 };
72 struct block b
= { 0x10000, 0x20000, 0, 0, 1, 20 };
73 struct blockvector bv
= { 2, { &a
, &b
} };
74 struct symtab s
= { &bv
};
76 struct blockvector
*ret
;
78 ret
= blockvector_for_pc_sect(0x500, &s
);