diff options
author | Arne Döring <arne.doering@gmx.net> | 2019-12-17 11:30:01 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2019-12-17 11:30:01 +0100 |
commit | 5848f0042c2d6a6dd39d9b8db747f36200c9f543 (patch) | |
tree | 37dadfdad1ff6757a88299edaa1aee81940958ac | |
parent | 7650617448dad812204a10218133c685b9e3d746 (diff) | |
download | Nim-5848f0042c2d6a6dd39d9b8db747f36200c9f543.tar.gz |
add $nimeq for gdb (#12909)
-rw-r--r-- | tools/nim-gdb.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tools/nim-gdb.py b/tools/nim-gdb.py index 6768ca5c4..e994531b6 100644 --- a/tools/nim-gdb.py +++ b/tools/nim-gdb.py @@ -161,6 +161,35 @@ class DollarPrintFunction (gdb.Function): DollarPrintFunction() + +################################################################################ +##### GDB Function, Nim string comparison +################################################################################ + +class NimStringEqFunction (gdb.Function): + """Compare Nim strings for example in conditionals for breakpoints.""" + + def __init__ (self): + super (NimStringEqFunction, self).__init__("nimstreq") + + @staticmethod + def invoke_static(arg1,arg2): + if arg1.type.code == gdb.TYPE_CODE_PTR and arg1.type.target().name == "NimStringDesc": + str1 = NimStringPrinter(arg1).to_string() + else: + str1 = arg1.string() + if arg2.type.code == gdb.TYPE_CODE_PTR and arg2.type.target().name == "NimStringDesc": + str2 = NimStringPrinter(arg1).to_string() + else: + str2 = arg2.string() + + return str1 == str2 + + def invoke(self, arg1, arg2): + return self.invoke_static(arg1, arg2) + +NimStringEqFunction() + ################################################################################ ##### GDB Command, equivalent of Nim's $ operator ################################################################################ |