2012-06-26 Siva Chandra Reddy <sivachandra@google.com>
New attribute 'last' for gdb.Symtab_and_line. * NEWS (Python Scripting): Add entry about the new attribute. * python/py-symtab.c (salpy_get_last): New function which implements the get method for the 'last' attribute of gdb.Symtab_and_line. (sal_object_getset): Add entry for the 'last' attribute. doc/ * gdb.texinfo (Symbol Tables In Python): Add description about the new 'last' attribute of gdb.Symtab_and line. testsuite/ * gdb.python/py-symtab.exp: Add tests to test the new attribute 'last' of gdb.Symtab_and_line. * gdb.python/py-symbol.c: Move break point comment to enable testing of gdb.Symtab_and_line.last.
This commit is contained in:
parent
f7ccda615a
commit
ee0bf529c3
8 changed files with 52 additions and 2 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2012-06-26 Siva Chandra Reddy <sivachandra@google.com>
|
||||||
|
|
||||||
|
New attribute 'last' for gdb.Symtab_and_line.
|
||||||
|
* NEWS (Python Scripting): Add entry about the new attribute.
|
||||||
|
* python/py-symtab.c (salpy_get_last): New function which
|
||||||
|
implements the get method for the 'last' attribute of
|
||||||
|
gdb.Symtab_and_line.
|
||||||
|
(sal_object_getset): Add entry for the 'last' attribute.
|
||||||
|
|
||||||
2012-06-26 Doug Evans <dje@google.com>
|
2012-06-26 Doug Evans <dje@google.com>
|
||||||
|
|
||||||
* dwarf2read.c (dwo_section_names): Add macinfo_dwo, macro_dwo.
|
* dwarf2read.c (dwo_section_names): Add macinfo_dwo, macro_dwo.
|
||||||
|
|
3
gdb/NEWS
3
gdb/NEWS
|
@ -60,6 +60,9 @@
|
||||||
** New function gdb.find_pc_line which returns the gdb.Symtab_and_line
|
** New function gdb.find_pc_line which returns the gdb.Symtab_and_line
|
||||||
object associated with a PC value.
|
object associated with a PC value.
|
||||||
|
|
||||||
|
** gdb.Symtab_and_line has new attribute 'last' which holds the end
|
||||||
|
of the address range occupied by code for the current source line.
|
||||||
|
|
||||||
* Go language support.
|
* Go language support.
|
||||||
GDB now supports debugging programs written in the Go programming
|
GDB now supports debugging programs written in the Go programming
|
||||||
language.
|
language.
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2012-06-26 Siva Chandra Reddy <sivachandra@google.com>
|
||||||
|
|
||||||
|
* gdb.texinfo (Symbol Tables In Python): Add description about
|
||||||
|
the new 'last' attribute of gdb.Symtab_and line.
|
||||||
|
|
||||||
2012-06-26 Siva Chandra Reddy <sivachandra@google.com>
|
2012-06-26 Siva Chandra Reddy <sivachandra@google.com>
|
||||||
|
|
||||||
* gdb.texinfo (Symbol Tables In Python): Correct the description
|
* gdb.texinfo (Symbol Tables In Python): Correct the description
|
||||||
|
|
|
@ -25276,6 +25276,11 @@ Indicates the start of the address range occupied by code for the
|
||||||
current source line. This attribute is not writable.
|
current source line. This attribute is not writable.
|
||||||
@end defvar
|
@end defvar
|
||||||
|
|
||||||
|
@defvar Symtab_and_line.last
|
||||||
|
Indicates the end of the address range occupied by code for the current
|
||||||
|
source line. This attribute is not writable.
|
||||||
|
@end defvar
|
||||||
|
|
||||||
@defvar Symtab_and_line.line
|
@defvar Symtab_and_line.line
|
||||||
Indicates the current line number for this object. This
|
Indicates the current line number for this object. This
|
||||||
attribute is not writable.
|
attribute is not writable.
|
||||||
|
|
|
@ -237,6 +237,22 @@ salpy_get_pc (PyObject *self, void *closure)
|
||||||
return gdb_py_long_from_ulongest (sal->pc);
|
return gdb_py_long_from_ulongest (sal->pc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Implementation of the get method for the 'last' attribute of
|
||||||
|
gdb.Symtab_and_line. */
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
salpy_get_last (PyObject *self, void *closure)
|
||||||
|
{
|
||||||
|
struct symtab_and_line *sal = NULL;
|
||||||
|
|
||||||
|
SALPY_REQUIRE_VALID (self, sal);
|
||||||
|
|
||||||
|
if (sal->end > 0)
|
||||||
|
return gdb_py_long_from_ulongest (sal->end - 1);
|
||||||
|
else
|
||||||
|
Py_RETURN_NONE;
|
||||||
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
salpy_get_line (PyObject *self, void *closure)
|
salpy_get_line (PyObject *self, void *closure)
|
||||||
{
|
{
|
||||||
|
@ -556,6 +572,8 @@ static PyTypeObject symtab_object_type = {
|
||||||
static PyGetSetDef sal_object_getset[] = {
|
static PyGetSetDef sal_object_getset[] = {
|
||||||
{ "symtab", salpy_get_symtab, NULL, "Symtab object.", NULL },
|
{ "symtab", salpy_get_symtab, NULL, "Symtab object.", NULL },
|
||||||
{ "pc", salpy_get_pc, NULL, "Return the symtab_and_line's pc.", NULL },
|
{ "pc", salpy_get_pc, NULL, "Return the symtab_and_line's pc.", NULL },
|
||||||
|
{ "last", salpy_get_last, NULL,
|
||||||
|
"Return the symtab_and_line's last address.", NULL },
|
||||||
{ "line", salpy_get_line, NULL,
|
{ "line", salpy_get_line, NULL,
|
||||||
"Return the symtab_and_line's line.", NULL },
|
"Return the symtab_and_line's line.", NULL },
|
||||||
{NULL} /* Sentinel */
|
{NULL} /* Sentinel */
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
2012-06-26 Siva Chandra Reddy <sivachandra@google.com>
|
||||||
|
|
||||||
|
* gdb.python/py-symtab.exp: Add tests to test the new attribute
|
||||||
|
'last' of gdb.Symtab_and_line.
|
||||||
|
* gdb.python/py-symbol.c: Move break point comment to enable
|
||||||
|
testing of gdb.Symtab_and_line.last.
|
||||||
|
|
||||||
2012-06-26 Tom Tromey <tromey@redhat.com>
|
2012-06-26 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
* gdb.threads/step.c: Remove.
|
* gdb.threads/step.c: Remove.
|
||||||
|
|
|
@ -40,8 +40,8 @@ int qq = 72; /* line of qq */
|
||||||
int func (int arg)
|
int func (int arg)
|
||||||
{
|
{
|
||||||
int i = 2;
|
int i = 2;
|
||||||
i = i * arg;
|
i = i * arg; /* Block break here. */
|
||||||
return arg; /* Block break here. */
|
return arg;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct simple_struct
|
struct simple_struct
|
||||||
|
|
|
@ -46,10 +46,13 @@ gdb_py_test_silent_cmd "python static_block = symtab.static_block()" "Get static
|
||||||
gdb_py_test_silent_cmd "python global_symbols = \[\]; static_symbols = \[\]" "Set up symbol name lists" 0
|
gdb_py_test_silent_cmd "python global_symbols = \[\]; static_symbols = \[\]" "Set up symbol name lists" 0
|
||||||
gdb_py_test_silent_cmd "python for sym in global_block: global_symbols.append(sym.name)" "Get global symbol names" 0
|
gdb_py_test_silent_cmd "python for sym in global_block: global_symbols.append(sym.name)" "Get global symbol names" 0
|
||||||
gdb_py_test_silent_cmd "python for sym in static_block: static_symbols.append(sym.name)" "Get static symbol names" 0
|
gdb_py_test_silent_cmd "python for sym in static_block: static_symbols.append(sym.name)" "Get static symbol names" 0
|
||||||
|
gdb_py_test_silent_cmd "step" "Step to the next line" 0
|
||||||
|
gdb_py_test_silent_cmd "python new_pc = gdb.selected_frame().find_sal().pc" "Get new PC" 0
|
||||||
|
|
||||||
# Test sal.
|
# Test sal.
|
||||||
gdb_test "python print sal.symtab" ".*gdb.python/py-symbol.c.*" "Test symtab"
|
gdb_test "python print sal.symtab" ".*gdb.python/py-symbol.c.*" "Test symtab"
|
||||||
gdb_test "python print sal.pc" "${decimal}" "Test sal.pc"
|
gdb_test "python print sal.pc" "${decimal}" "Test sal.pc"
|
||||||
|
gdb_test "python print sal.last == (new_pc - 1)" "True" "Test sal.last"
|
||||||
gdb_test "python print sal.line" "$line_no" "Test sal.line"
|
gdb_test "python print sal.line" "$line_no" "Test sal.line"
|
||||||
gdb_test "python print sal.is_valid()" "True" "Test sal.is_valid"
|
gdb_test "python print sal.is_valid()" "True" "Test sal.is_valid"
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue