xcode调试打印QString

xcode内置GDB,在调试工程过程中可以通过print命令打印基本的数据类型,但像QString这样复杂类型就不行了。虽然我们可以在程序代码通过添加Qt的调试打印语句qDebug()<<“debug strText:”<<strText 等方式查看对应的QString值,但这样在调试过程中,显然很不方便。幸好,gdb提供了扩展功能,可以自定义宏命令方式,把自定义的命令放到$HOME/.gdbinit文件中,每次启动gdb时就可以自动加载了,下面的代码是从网上摘录的:

define printqstring
        printf "(QString)0x%x (length=%i): \"",&$arg0,$arg0.d->size
        set $i=0
        while $i < $arg0.d->size
            set $c=$arg0.d->data[$i++]
            if $c < 32 || $c > 127
                    printf "\\u0x%04x", $c
            else
                    printf "%c", (char)$c
            end
        end
        printf "\"\n"
    end

这样xcode在调试工程过程中,就能使用print strText方式打印相应的QString类型值;

以上是针对xcode4.0之前的版本,对于xcode4.0以后的版本,内置编译器换成了LLVM,原来的gdb更换成了lldb,也就是说上边自定义宏命令方式已不起作用,这时调试过程中我们可以采用另外一种方式,通过转换QString类型来打印相关字符串:print strText.tolatin1.data()。

时间: 2024-10-18 04:16:47

xcode调试打印QString的相关文章

Xcode调试LLDB

一.简介 关于Xcode调试,相信大家很多会用断点调试,今天无意间在苹果开发的群里看到了po,瞬间心中有个疑问:po是什么?下面我就百度搜索了一下,介绍一点皮毛. 首先是LLDB,它的全名是lower level debug,意思就是底层调试器.原来苹果用的是GDB,后来发现GDB有一些问题无法解决,所以就用了LLDB,它是高性能的调试器,包括了完整的LLVM编译器,其中LLVM包括了Clang表达式解析器和反汇编程序,它可以理解OC语法.进而进行调试. 其次就是po,网上搜了一下还有p命令.p

ios 使用xcode调试代码的时候进入断点显示变量全是nil,但NSLog输出那个变量却是有值的

解决办法:把1删掉 2选择debug模式 ios 使用xcode调试代码的时候进入断点显示变量全是nil,但NSLog输出那个变量却是有值的,布布扣,bubuko.com

xcode调试查看变量的值

对于IPhone开发/XCode的初学者,如何在调试时查看变量的值是很头痛的事情.因为Xcode的expression 经常无法正确显示变量的值.但是强大的GDB可以很方便的帮我们查看变量的值. 当执行到某断点时,在GDB窗口中使用po就可以查看变量.(po = print object) 1)查看String 或其它变量. po 变量名 2)查看某个Property.比如要查看item变量的name属性. po [item name]    注意,po item.name是不工作的. 3)查看

Xcode调试之exc_bad_access以及 message sent to deallocated instance

如果出现exc_bad_access错误,基本上是由于内存泄漏,错误释放,对一个已经释放的对象进行release操作.但是xcode有时候不会告诉你错误在什么地方(Visual Studio这点做得很好).不过我们可以通过设置xcode环境变量环境变量NSZombieEnabled,MallocStackLogging查看错误的来源: 1.菜单 Product > Manage Schemes; 2.选中当前的Scheme,点Edit按钮: 3.设置环境变量.在Arguments > Envi

为什么Xcode调试模式下, lldb调试器打印任何对象都为空, 鼠标指向对变量时显示为nil?

如果之前有对工程打包发布过,那么一定改过这个位置: 如果是Release状态,那么lldb调试器无法打印变量信息,但NSLog却可以.此时将此选项改为"Debug"即可.

Xcode 调试技巧-b

随着Xcode 5的发布,LLDB调试器已经取代了GDB,成为了Xcode工程中默认的调试器.它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能.LLDB为Xcode提供了底层调试环境,其中包括内嵌在Xcode IDE中的位于调试区域的控制面板,在这里我们可以直接调用LLDB命令 1.必备篇 1.1 打印变量:print/po print:打印变量的值可以使用print命令,该命令如果打印的是简单类型,则会列出简单类型的类型和值.如果是对象,还会打印出对象指针地址: print

XCode调试的 Stack Trace,调试时抛出异常,定位到某一行代码,并且添加变量监视

在Xcode调试程序的时候,总是会出现不知道错误在什么地方的问题,很是捉急,现在又一个办法,可以具体定位到错误行的代码,试一下吧?超级好用 操作很简单: 1.在XCode界面中直接点击选项卡,跳到Breakpoint的tab 2.然后点击左下角的+号,增加一个Exception的断点,如下图所示. 3.接下来会出现一个"All Exception"的调试选项: 4.将鼠标放到上面,右击选择"Edit Breakpoint",可以查看选项的具体内容如下:(不用做任何修

Xcode 调试命令

XCode4.0以后,编译器换成了LLVM 编译器 2.0 与以前相比,更加强大:1.LLVM 编译器是下一带开源的编译技术.完全支持C, Objective-C, 和 C++.2.LLVM 速度比 GCC快两倍,建立的程序也会运行的更快. 因为它更好的利用现代的芯片的结构.3.LLVM和Xcode 4完全的整合在一起.包括关键字高亮,代码完整性等全都是由LLVM语法分析器来分析的. 这样可以在编辑的时候就可以很好的了解你的代码. 编译器进化之后,控制台调试命令前缀,也由原来的gdb更改成了ll

Xcode 调试技巧(很常用)

1.Enable NSZombie Objects(开启僵尸对象) 僵尸模式是整个Xcode开发环境中最有用的调试技巧.这个技巧非常非常容易追踪到重复释放的问题.该技巧会以非常简洁的方式打印指出重复释放的类和该类的内存地址. 那么怎么开启僵尸对象呢?首先打开"Edit Scheme"(或者通过热键?<),然后选择Diagnostics选项卡,勾选Enable NSZombie Objects选项. ARC重复释放的问题.异常和更容易产生的Crashs,但是即使开启ARC,重复释放