gpt4 book ai didi

c++ - 有没有办法教 Android Studio 在将鼠标悬停在变量上时如何显示 C++ 结构?

转载 作者:行者123 更新时间:2023-12-05 04:29:49 24 4
gpt4 key购买 nike

作为一个实际的例子,假设我有一个看起来像这样的结构:

struct MyFoo {
std::string mValue;
bool hasValue;
MyFoo() : hasValue(false) {}
MyFoo(std::string value) : mValue(value), hasValue(true) {}
};

如果我将鼠标悬停在该结构的实例上,Android Studio 会显示 + ☰ {MyFoo} .我可以展开它,并稍微向下钻取,看看内容是什么。 (我应该指出,这是一个过于简单化的示例;我的实际应用程序是一个复杂得多的结构,要查看其值并非易事)。

有没有办法让它显示类似+ ☰ {MyFoo} <none> 的内容?或 + ☰ {MyFoo} "Hello, world"相反?

我可以看到 Android Studio 使用某些 STL 类型执行此操作,这表明某处有关于如何执行此操作的知识。

奖励问题:XCode 怎么样?

最佳答案

据我所知,Android Studio 使用 LLDB 来调试原生代码。

您可以使用 LLDB 命令添加自定义格式来显示这些变量。

参见:https://lldb.llvm.org/use/variable.html

最简单的 pretty-print 方式是在 LLDB 中使用 Python 脚本(查看 LLDB 文档链接了解更多信息,我的示例基于它)

(lldb) type summary add -P MyFoo
Enter your Python command(s). Type 'DONE' to end.
def function (valobj,internal_dict,options):
mval = valobj.GetChildMemberWithName('mValue')
hasval = valobj.GetChildMemberWithName('hasValue')
if hasval.GetValueAsUnsigned(0) == 0:
return '<none>'
else:
return mval.GetSummary()
DONE

处理 std::string 是一个真正的蠕虫 jar 头,但您可以在 this question 上找到一些潜在的解决方案.

关于c++ - 有没有办法教 Android Studio 在将鼠标悬停在变量上时如何显示 C++ 结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72207645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com