[cross-project-tests] Make GDB version string parsing more robust

Follow up to D118468 (5257efdc5b).

When built from source, gdb's version string looks like this:

    GNU gdb (GDB) 9.2
    ...

But for installed versions it looks different. E.g.

    GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.1) 9.2
    ...

Use a regex rather than str.parition in the version string parsing in order to
handle this case too.
This commit is contained in:
OCHyams 2022-02-09 11:32:29 +00:00
parent 29caa8583f
commit 00b2a9c9da

View File

@ -216,11 +216,11 @@ def get_gdb_version_string():
if len(gdb_vers_lines) < 1:
print("Unkown GDB version format (too few lines)", file=sys.stderr)
return None
string = gdb_vers_lines[0].strip().partition('GNU gdb (GDB) ')[2]
if len(string) == 0:
print("Unkown GDB version format", file=sys.stderr)
match = re.search('GNU gdb \(.*?\) ((\d|\.)+)', gdb_vers_lines[0].strip())
if match is None:
print(f"Unkown GDB version format: {gdb_vers_lines[0]}", file=sys.stderr)
return None
return string
return match.group(1)
def get_clang_default_dwarf_version_string(triple):
"""Return the default dwarf version string for clang on this (host) platform