[gdb/python] Avoid queue.SimpleQueue for python 3.6
commit954a1f9183c68671c07f21baf78ac2053390af55
authorTom de Vries <tdevries@suse.de>
Thu, 5 Jan 2023 16:35:41 +0000 (5 17:35 +0100)
committerTom de Vries <tdevries@suse.de>
Thu, 5 Jan 2023 16:35:41 +0000 (5 17:35 +0100)
treecc2b9f9aedaf65d4bdbe5924476ce3a0433e5669
parentd66641b604182246b648f662d3c32200ac921365
[gdb/python] Avoid queue.SimpleQueue for python 3.6

On openSUSE Leap 15.4 with python 3.6, the gdb.dap/basic-dap.exp test-case
fails as follows:
...
ERROR: eof reading json header
    while executing
"error "eof reading json header""
    invoked from within
"expect {
-i exp19 -timeout 10
        -re "^Content-Length: (\[0-9\]+)\r\n" {
            set length $expect_out(1,string)
            exp_continue
        }
        -re "^(\[^\r\n\]+)..."
    ("uplevel" body line 1)
    invoked from within
"uplevel $body" NONE eof reading json header
UNRESOLVED: gdb.dap/basic-dap.exp: startup - initialize
...

Investigation using a "catch throw" shows that:
...
(gdb)
    at gdb/python/py-utils.c:396
396             error (_("Error occurred in Python: %s"), msg.get ());
(gdb) p msg.get ()
$1 = 0x2b91d10 "module 'queue' has no attribute 'SimpleQueue'"
...

The python class queue.SimpleQueue was introduced in python 3.7.

Fix this by falling back to queue.Queue for python <= 3.6.

Tested on x86_64-linux, by successfully running the test-case:
...
 # of expected passes            47
...
gdb/python/lib/gdb/dap/server.py
gdb/python/lib/gdb/dap/startup.py