2011-10-20 Phil Muldoon <pmuldoon@redhat.com>

PR python/12656

	* python/py-frame.c (frapy_read_var): Use const struct *block.
	* python/py-type.c (typy_lookup_typename): Likewise.
	(typy_lookup_type): Likewise.
	(typy_legacy_template_argument): Likewise.
	(typy_template_argument): Likewise.
	(gdbpy_lookup_type): Likewise.
	* python/py-symbol.c (gdbpy_lookup_symbol): Likewise.
	* python/py-block.c (blpy_block_object): Likewise.
	(blpy_iter): Likewise.
	(blpy_get_start): Likewise.
	(blpy_get_end): Likewise.
	(blpy_get_function): Likewise.
	(blpy_get_superblock): Likewise.
	(set_block):  Likewise.
	(block_to_block_object): Likewise.
	(block_object_to_block): Likewise.
	(blpy_is_valid): Likewise.
	(blpy_get_global_block): New function.
	(blpy_get_static_block): New function.
	(blpy_is_global): New function.
	(blpy_is_static): New function.
	* blockframe.c (block_innermost_frame): Likewise.
	* valops.c (value_of_variable): Likewise.
	* frame.h: Update prototypes.
	* python/python-internal.h: Likewise.
	* value.h: Likewise.

2011-10-20  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/12656

	* gdb.texinfo (Blocks In Python): Document is_static, is_global,
	global_block, static_block function.

2011-10-20  Phil Muldoon  <pmuldoon@redhat.com>

	PR python/12656

	* gdb.python/py-block.exp: Add is_global, is_static, static_block,
	global_block tests.
This commit is contained in:
Phil Muldoon
2011-10-20 12:31:30 +00:00
parent 5468810dda
commit 9df2fbc4c1
15 changed files with 186 additions and 24 deletions

View File

@ -48,6 +48,16 @@ gdb_test "python print block.function" "None" "First anonymous block"
gdb_test "python print block.start" "${decimal}" "Check start not None"
gdb_test "python print block.end" "${decimal}" "Check end not None"
# Test global/static blocks
gdb_py_test_silent_cmd "python frame = gdb.selected_frame()" "Get Frame" 0
gdb_py_test_silent_cmd "python block = frame.block()" "Get block" 0
gdb_test "python print block.is_global" "False" "Not a global block"
gdb_test "python print block.is_static" "False" "Not a static block"
gdb_py_test_silent_cmd "python gblock = block.global_block" "Get block" 1
gdb_py_test_silent_cmd "python sblock = block.static_block" "Get block" 1
gdb_test "python print gblock.is_global" "True" "Is the global block"
gdb_test "python print sblock.is_static" "True" "Is the static block"
# Move up superblock(s) until we reach function block_func.
gdb_test_no_output "python block = block.superblock" "Get superblock"
gdb_test "python print block.function" "None" "Second anonymous block"