From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) by sourceware.org (Postfix) with ESMTPS id CED923858C50 for ; Fri, 23 Jun 2023 08:37:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CED923858C50 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-lf1-x130.google.com with SMTP id 2adb3069b0e04-4f86bc35f13so399041e87.1 for ; Fri, 23 Jun 2023 01:37:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687509458; x=1690101458; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=cA0su/m6qpBDk141Jc8bYTsmepbNh0m3EDmcxVMFr40=; b=raN1tuEeN5ZzrY7EGOM15J8aTCUMLZusVtoLwz/fbOjwClPiRUmfAGdUbtH8EB2CRS s2ZUxK5uVIgebT9kWp+W7A53RpIjU/ImxzQ1vJpHV4jkwWdYLxfl9jEVid9GY3LVw3gt IJcLoKsvoNWGKpS6OQ+4HwaGzRuu/CYTT+VxkOaXIf/esZgUBSwDMpeVBIvcJBPrcfqH w21z4CR6EWOR9ZlYNFhu98uZY1pzQ7P/TxWFB/yI7VqbHONIotXKBrIoQ4SswaUawrIe VZGmIDSMPFYGgCHsT9e7l2UBkiL9IV6JUBQ+0GOI3yR3Fy7T31vY93ifqchWMBFSvjIa Utnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687509458; x=1690101458; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=cA0su/m6qpBDk141Jc8bYTsmepbNh0m3EDmcxVMFr40=; b=R7APv62HlqJmiIaCBkJnvZut2KLXY1Cx37JL/rszVGhfiyGLhEEameRstGto7tYQ3z kGClvBnrTySTAvS5eHayhUB30XsQynQsK+WdNl+v6baWhxNAANtNlbW/f5yCbegSzDCV CxC8rpSq03BQX/o9xO4Ka+TSXMrWMFJH/xqkW3cPY42DQUyY3AxipughOuRgYgZSnWMb Hzr8+wVxqJ/joz5T3DAcIDBCNK2zKol/F4NlpQLa9s3OjxEW9VCKyygtXIC3I2zQmAmV Yim38eJ7AGy1XlTmo0bMLjnTviCldq1eiepNmgbCyvu6jb325MNCloABAtB7bJZbXJQz u9HQ== X-Gm-Message-State: AC+VfDzpm6erCjsJLFHc3UvnsXu82Y8KmT2f+uneoBrv4RSEXeFQfgdA /7pVZeAW0Nxx6aFFbN3MiEdXiLOTEK4= X-Google-Smtp-Source: ACHHUZ5SYFM9cYr5I97IQRC7Q/oxuv5T2rDEXh8+HdN9TNnf5diRZhvEXceuh/BKGpFFuBrJynp6xw== X-Received: by 2002:a19:e044:0:b0:4f9:52f3:9a2b with SMTP id g4-20020a19e044000000b004f952f39a2bmr7201721lfj.54.1687509457517; Fri, 23 Jun 2023 01:37:37 -0700 (PDT) Received: from fedora.. (78-73-77-63-no2450.tbcn.telia.com. [78.73.77.63]) by smtp.gmail.com with ESMTPSA id c1-20020ac25301000000b004f86e7ffe28sm1363773lfh.47.2023.06.23.01.37.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Jun 2023 01:37:36 -0700 (PDT) From: Simon Farre To: gdb-patches@sourceware.org Cc: Simon Farre Subject: [PATCH v1] gdb/DAP Fix LazyString not serializable exception Date: Fri, 23 Jun 2023 10:37:25 +0200 Message-ID: <20230623083725.12846-1-simon.farre.cx@gmail.com> X-Mailer: git-send-email 2.41.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Fixed this bug in v1 of a patch that later got removed. I couldn't reproduce the issue, but now I've found out what it is. I've reproduced it by basically sending two evaluate requests, "source prettyprinter.py" (the stdlib pretty printer, to be exact) and "py register_libstdcxx_printers(gdb.current_objfile())" - i.e. the standard library pretty printer registering. That's when an exception is raised by the DAP Python code. It is most likely because the pretty printers somewhere, for something, returns a LazyString instead of string. This patch will make variable references value always be str(...) to make sure that it converts it to a value that can be serialiable by json.dumps. --- gdb/python/lib/gdb/dap/varref.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdb/python/lib/gdb/dap/varref.py b/gdb/python/lib/gdb/dap/varref.py index 213151fd3d3..6b12da56c82 100644 --- a/gdb/python/lib/gdb/dap/varref.py +++ b/gdb/python/lib/gdb/dap/varref.py @@ -152,7 +152,7 @@ class VariableReference(BaseReference): def to_object(self): result = super().to_object() - result[self.result_name] = self.printer.to_string() + result[self.result_name] = str(self.printer.to_string()) num_children = self.child_count() if num_children is not None: if ( -- 2.41.0