【问题标题】:How to set a const char* variable in LLDB如何在 LLDB 中设置 const char* 变量
【发布时间】:2013-02-14 17:34:14
【问题描述】:

我在做一个 IOS 项目,我们使用 Objective-c。

I 函数传递一些类型为 const char* 的数据。我可以在调试器中查看数据:

expr -- (void)printf("[%s]\n",(const char *)xml)

但我想通过调试器即时更改 xml 变量的值。怎么办?

【问题讨论】:

    标签: c lldb


    【解决方案1】:

    char* 一样:

    对于const char *xml = "<xml></xml>";,您可以分配给 xml

    expr -- xml = "<foo></foo>"

    当然xml(指向您的字符串的指针)在函数范围内,因此您只需更改函数中xml 指向的位置,而不是xml 最初指向的字符串(您可以't,因为你有一个指向const的指针)

    如果 xml 被声明为 char xml[] = "<xml></xml>";,这将不起作用,因为数组在 C 中是不可赋值的。

    【讨论】:

    • 注意pexpr --的别名,所以你也可以使用p xml = "<foo></foo>"来获得想要的效果。 (这与您在 gdb 中使用的命令相同)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 2022-01-23
    • 2015-06-18
    • 1970-01-01
    相关资源
    最近更新 更多