summaryrefslogtreecommitdiff
path: root/src/.gdbinit
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2014-01-29 20:17:20 +0200
committerEli Zaretskii <eliz@gnu.org>2014-01-29 20:17:20 +0200
commit824a51e6a51e5065a24c918c4aab736ba075c5fc (patch)
tree52fbbad2b15e68de5863fe2839f22e7533179e6c /src/.gdbinit
parent46f4dd40e57e670fcdf4c8a7be3c7193f9c5d27b (diff)
downloademacs-824a51e6a51e5065a24c918c4aab736ba075c5fc.tar.gz
Fix printing empty Lisp strings.
src/.gdbinit (xprintstr, xprintbytestr): Don't use repetition count of zero to print strings, GDB doesn't like it.
Diffstat (limited to 'src/.gdbinit')
-rw-r--r--src/.gdbinit15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/.gdbinit b/src/.gdbinit
index 3fdda5a1abf..715744bc18e 100644
--- a/src/.gdbinit
+++ b/src/.gdbinit
@@ -1072,7 +1072,13 @@ end
define xprintstr
set $data = (char *) $arg0->data
- output ($arg0->size > 1000) ? 0 : ($data[0])@($arg0->size_byte < 0 ? $arg0->size & ~ARRAY_MARK_FLAG : $arg0->size_byte)
+ set $strsize = ($arg0->size_byte < 0) ? ($arg0->size & ~ARRAY_MARK_FLAG) : $arg0->size_byte
+ # GDB doesn't like zero repetition counts
+ if $strsize == 0
+ output ""
+ else
+ output ($arg0->size > 1000) ? 0 : ($data[0])@($strsize)
+ end
end
define xprintsym
@@ -1184,8 +1190,13 @@ end
define xprintbytestr
set $data = (char *) $arg0->data
+ set $bstrsize = ($arg0->size_byte < 0) ? ($arg0->size & ~ARRAY_MARK_FLAG) : $arg0->size_byte
printf "Bytecode: "
- output/u ($arg0->size > 1000) ? 0 : ($data[0])@($arg0->size_byte < 0 ? $arg0->size & ~ARRAY_MARK_FLAG : $arg0->size_byte)
+ if $bstrsize > 0
+ output/u ($arg0->size > 1000) ? 0 : ($data[0])@($bvsize)
+ else
+ printf ""
+ end
end
document xprintbytestr
Print a string of byte code.