|
7 | 7 | # documentation: according to https://sourceware.org/gdb/current/onlinedocs/gdb/Remote-Protocol.html#Remote-Protocol |
8 | 8 |
|
9 | 9 | import struct, os, socket |
| 10 | +import inspect |
| 11 | +from pathlib import Path |
10 | 12 | from binascii import unhexlify |
11 | 13 | from typing import Iterator, Literal |
12 | 14 |
|
@@ -482,14 +484,13 @@ def handle_q(subcmd): |
482 | 484 | self.send("PacketSize=47ff;QPassSignals+;QProgramSignals+;QStartupWithShell+;QEnvironmentHexEncoded+;QEnvironmentReset+;QEnvironmentUnset+;QSetWorkingDir+;QCatchSyscalls+;qXfer:libraries-svr4:read+;augmented-libraries-svr4-read+;qXfer:auxv:read+;qXfer:siginfo:read+;qXfer:siginfo:write+;qXfer:features:read+;QStartNoAckMode+;qXfer:osdata:read+;multiprocess+;fork-events+;vfork-events+;exec-events+;QNonStop+;QDisableRandomization+;qXfer:threads:read+;ConditionalTracepoints+;TraceStateVariables+;TracepointSource+;DisconnectedTracing+;FastTracepoints+;StaticTracepoints+;InstallInTrace+;qXfer:statictrace:read+;qXfer:traceframe-info:read+;EnableDisableTracepoints+;QTBuffer:size+;tracenz+;ConditionalBreakpoints+;BreakpointCommands+;QAgent+;Qbtrace:bts+;Qbtrace-conf:bts:size+;Qbtrace:pt+;Qbtrace-conf:pt:size+;Qbtrace:off+;qXfer:btrace:read+;qXfer:btrace-conf:read+;swbreak+;hwbreak+;qXfer:exec-file:read+;vContSupported+;QThreadEvents+;no-resumed+") |
483 | 485 | elif subcmd.startswith('Xfer:features:read'): |
484 | 486 | xfercmd_file = subcmd.split(':')[3] |
485 | | - xfercmd_abspath = os.path.dirname(os.path.abspath(__file__)) |
| 487 | + xfercmd_abspath = Path(inspect.getfile(inspect.currentframe())).parent |
486 | 488 | xml_folder = self.ql.arch.type.name.lower() |
487 | | - xfercmd_file = os.path.join(xfercmd_abspath,"xml",xml_folder, xfercmd_file) |
| 489 | + xfercmd_file = xfercmd_abspath / 'xml' / xml_folder / xfercmd_file |
488 | 490 |
|
489 | | - if os.path.exists(xfercmd_file) and self.ql.os.type is not QL_OS.WINDOWS: |
490 | | - with open(xfercmd_file, 'r') as f: |
| 491 | + if xfercmd_file.exists() and self.ql.os.type is not QL_OS.WINDOWS: |
| 492 | + with xfercmd_file.open('r') as f: |
491 | 493 | file_contents = f.read() |
492 | | - self.send("l%s" % file_contents) |
493 | 494 | else: |
494 | 495 | self.ql.log.info("gdb> Platform is not supported by xml or xml file not found: %s\n" % (xfercmd_file)) |
495 | 496 | self.send("l") |
|
0 commit comments