【发布时间】:2013-02-14 17:34:14
【问题描述】:
我在做一个 IOS 项目,我们使用 Objective-c。
I 函数传递一些类型为 const char* 的数据。我可以在调试器中查看数据:
expr -- (void)printf("[%s]\n",(const char *)xml)
但我想通过调试器即时更改 xml 变量的值。怎么办?
【问题讨论】:
我在做一个 IOS 项目,我们使用 Objective-c。
I 函数传递一些类型为 const char* 的数据。我可以在调试器中查看数据:
expr -- (void)printf("[%s]\n",(const char *)xml)
但我想通过调试器即时更改 xml 变量的值。怎么办?
【问题讨论】:
与char* 一样:
对于const char *xml = "<xml></xml>";,您可以分配给 xml
expr -- xml = "<foo></foo>"
当然xml(指向您的字符串的指针)在函数范围内,因此您只需更改函数中xml 指向的位置,而不是xml 最初指向的字符串(您可以't,因为你有一个指向const的指针)
如果 xml 被声明为 char xml[] = "<xml></xml>";,这将不起作用,因为数组在 C 中是不可赋值的。
【讨论】:
p是expr --的别名,所以你也可以使用p xml = "<foo></foo>"来获得想要的效果。 (这与您在 gdb 中使用的命令相同)