如何使dumpObjectInfo打印调试信息
How to make dumpObjectInfo to print debug info?
我想用dumpObjectInfo函数打印对象信息的转储,但什么都不打印。
有一个使用Qt:的C++程序
$ cat main1.cpp
#include <QObject>
#include <QString>
#include <QDebug>
#include "a.h"
int main() {
A a;
B b;
QObject::connect(&b, SIGNAL(sendText(QString)), &a, SLOT(printText(QString)));
b.sendSignal();
qDebug() << "print object dump";
a.dumpObjectInfo();
return 0;
}
有以下.pro文件(CONFIG中设置了调试模式):
$ cat qt.pro
######################################################################
# Automatically generated by qmake (2.01a) Tue Aug 28 17:41:22 2012
######################################################################
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
# Input
CONFIG += debug
HEADERS += a.h
SOURCES += main1.cpp
编译:
$ qmake qt.pro && make clean && make
rm -f moc_a.cpp
rm -f main1.o moc_a.o
rm -f *~ core *.core
g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o main1.o main1.cpp
/usr/bin/moc-qt4 -DQT_WEBKIT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. a.h -o moc_a.cpp
g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o moc_a.o moc_a.cpp
g++ -o qt main1.o moc_a.o -L/usr/lib/i386-linux-gnu -lQtGui -lQtCore -lpthread
{ test -n "" && DESTDIR="" || DESTDIR=.; } && test $(gdb --version | sed -e 's,[^0-9]+([0-9]).([0-9]).*,12,;q') -gt 72 && gdb --nx --batch --quiet -ex 'set confirm off' -ex "save gdb-index $DESTDIR" -ex quit 'qt' && test -f qt.gdb-index && objcopy --add-section '.gdb_index=qt.gdb-index' --set-section-flags '.gdb_index=readonly' 'qt' 'qt' && rm -f qt.gdb-index || true
程序运行:
$ ./qt
Signal text!
print object dump
$
尽管在.pro文件中设置了调试模式,但dumpObjectInfo不会打印任何内容。如何使函数dumpObjectInfo打印对象信息?
如果Qt库本身尚未在调试模式下编译,则会出现这种情况。医生说:
此函数对调试很有用,但如果库已在发布模式下编译(即未调试信息)。
为了实现这一点,您可以从源代码自编译Qt,而不是(或除此之外)使用预编译包。
相关文章:
- 创建进行生产构建并创建调试信息的C++生成文件的最佳方法?
- 在源文件中包含额外的调试信息,以便在代码::块中使用gdb进行调试
- Boost tread 代码在 VC++ 下编译,但不在 GCC 下编译:如何获得更好的调试信息
- 错误 VSP1011:无法获取调试信息.与 /配置文件链接器开关链接
- 在没有 -g 选项的情况下编译,但我想获得更详细的调试信息
- cmake/cpack 组件调试信息 rpm 包未出现
- LLDB - Qt 缺少调试信息
- C++ ATIOGLXX.pdb 包含查找模块 ATIOGLXX.dll 源代码所需的调试信息
- 如何将调试信息附加到LLVM通行证中的指令中
- 从LLVM IR获取精确的行/列调试信息
- 二进制不是使用 Visual Studio 2008 中的调试信息构建的
- 如何使dumpObjectInfo打印调试信息
- 找不到"mpiexec"的调试信息或不匹配。找不到或打开 PDB 文件
- g++未在调试信息中进行编译
- visualstudio可以使用gcc生成的调试信息吗
- 使用Visual C++在单独的文件中提取调试信息
- 警告LNK4206:找不到预编译类型信息; 未链接或覆盖;链接对象,就好像没有调试信息一样
- 调试 c++ dll 时找不到调试信息
- Visual Studio 测试主机不加载调试信息
- 无效迭代器:如何在第一次使用时获取一些调试信息