Align behavior of xmethod commands with that of pretty-printer commands.
Currently, the xmethod commands lookup xmethod matchers in the current progspace even if the locus regular expression matches the progspace's filename. Pretty printer commands do not match the current progspace's filename. gdb/ * python/lib/gdb/command/xmethods.py (get_method_matchers_in_loci): Lookup xmethod matchers in the current progspace only if the string "progspace" matches LOCUS_RE. gdb/testsuite * gdb.python/py-xmethods.exp: Use "progspace" instead of the progspace's filename in 'info', 'enable' and 'disable' command tests.
This commit is contained in:
parent
b972bd9c13
commit
70afc5b72d
4 changed files with 25 additions and 11 deletions
|
@ -1,3 +1,9 @@
|
|||
2014-06-23 Siva Chandra Reddy <sivachandra@google.com>
|
||||
|
||||
* python/lib/gdb/command/xmethods.py
|
||||
(get_method_matchers_in_loci): Lookup xmethod matchers in the
|
||||
current progspace only if the string "progspace" matches LOCUS_RE.
|
||||
|
||||
2014-06-20 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Fix --with-system-readline with readline-6.3 patch 5.
|
||||
|
|
|
@ -87,8 +87,11 @@ def get_method_matchers_in_loci(loci, locus_re, matcher_re):
|
|||
|
||||
Arguments:
|
||||
loci: The list of loci to lookup matching xmethods in.
|
||||
locus_re: Xmethod matchers will be looked up in a particular locus
|
||||
only if its filename matches the regular expression LOCUS_RE.
|
||||
locus_re: If a locus is an objfile, then xmethod matchers will be
|
||||
looked up in it only if its filename matches the regular
|
||||
expression LOCUS_RE. If a locus is the current progspace,
|
||||
then xmethod matchers will be looked up in it only if the
|
||||
string "progspace" matches LOCUS_RE.
|
||||
matcher_re: The regular expression to match the xmethod matcher
|
||||
names.
|
||||
|
||||
|
@ -99,8 +102,7 @@ def get_method_matchers_in_loci(loci, locus_re, matcher_re):
|
|||
xm_dict = {}
|
||||
for locus in loci:
|
||||
if isinstance(locus, gdb.Progspace):
|
||||
if (not locus_re.match(locus.filename) and
|
||||
not locus_re.match('progspace')):
|
||||
if not locus_re.match('progspace'):
|
||||
continue
|
||||
locus_type = "progspace"
|
||||
else:
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2014-06-23 Siva Chandra Reddy <sivachandra@google.com>
|
||||
|
||||
* gdb.python/py-xmethods.exp: Use "progspace" instead of the
|
||||
progspace's filename in 'info', 'enable' and 'disable' command
|
||||
tests.
|
||||
|
||||
2014-06-23 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.arch/amd64-stap-special-operands.exp: Use is_lp64_target.
|
||||
|
|
|
@ -125,19 +125,19 @@ gdb_test "p g_ptr->mul<char>('a')" "From Python G<>::mul.*" \
|
|||
"After: g_ptr->mul<char>('a')"
|
||||
|
||||
# Tests for 'disable/enable xmethod' command.
|
||||
gdb_test_no_output "disable xmethod .*xmethods G_methods" \
|
||||
gdb_test_no_output "disable xmethod progspace G_methods" \
|
||||
"Disable G_methods"
|
||||
gdb_test "p g.mul<char>('a')" "Couldn't find method.*" \
|
||||
"g.mul<char>('a') after disabling G_methods"
|
||||
gdb_test_no_output "enable xmethod .*xmethods G_methods" \
|
||||
gdb_test_no_output "enable xmethod progspace G_methods" \
|
||||
"Enable G_methods"
|
||||
gdb_test "p g.mul<char>('a')" "From Python G<>::mul.*" \
|
||||
"After enabling G_methods"
|
||||
gdb_test_no_output "disable xmethod .*xmethods G_methods;mul" \
|
||||
gdb_test_no_output "disable xmethod progspace G_methods;mul" \
|
||||
"Disable G_methods;mul"
|
||||
gdb_test "p g.mul<char>('a')" "Couldn't find method.*" \
|
||||
"g.mul<char>('a') after disabling G_methods;mul"
|
||||
gdb_test_no_output "enable xmethod .*xmethods G_methods;mul" \
|
||||
gdb_test_no_output "enable xmethod progspace G_methods;mul" \
|
||||
"Enable G_methods;mul"
|
||||
gdb_test "p g.mul<char>('a')" "From Python G<>::mul.*" \
|
||||
"After enabling G_methods;mul"
|
||||
|
@ -145,9 +145,9 @@ gdb_test "p g.mul<char>('a')" "From Python G<>::mul.*" \
|
|||
# Test for 'info xmethods' command
|
||||
gdb_test "info xmethod global plus" "global.*plus_plus_A" \
|
||||
"info xmethod global plus 1"
|
||||
gdb_test_no_output "disable xmethod .*xmethods E_methods;method_int" \
|
||||
"disable xmethod .*xmethods E_methods;method_int"
|
||||
gdb_test "info xmethod .*xmethods E_methods;method_int" ".* \\\[disabled\\\]" \
|
||||
gdb_test_no_output "disable xmethod progspace E_methods;method_int" \
|
||||
"disable xmethod progspace E_methods;method_int"
|
||||
gdb_test "info xmethod progspace E_methods;method_int" ".* \\\[disabled\\\]" \
|
||||
"info xmethod xmethods E_methods;method_int"
|
||||
|
||||
remote_file host delete ${xmethods_script}
|
||||
|
|
Loading…
Reference in a new issue