Qt - 工作线程上神秘的段错误

标签 qt segmentation-fault symbian qthread

我正在工作线程上实例化 QSystemDeviceInfo,但它会导致段错误。

int BatteryInfo::getLevel() {
   QSystemDeviceInfo sysDevInfo; //segfault happens when I step on to this line
   return sysDevInfo.batteryLevel();
}

该类是线程安全的,还是问题出在其他地方?

编辑:通过进一步调试,我还注意到 native Symbian 也会调用段错误。

致以诚挚的问候

最佳答案

我和我的 friend 在 Symbian Qt Mobilty 1.0 上也发现了这个问题。他报告了一个问题QtMobility access from multiple threads 。正如问题描述中所述,认为这可能是由于首次创建 QSystemDeviceInfo/QSystemNetworkInfo 时创建了一些静态成员。

如果您使用 Qt Mobility 1.2 或仅从一个线程访问 QSystemDeviceInfo,则会出现其他问题。

编辑:我们的一个解决方法是确保我们首先在主线程中创建一个 QSystemDeviceInfo 对象,但随后我们遇到了一些无法获取所有信号的问题。

关于Qt - 工作线程上神秘的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6841611/

相关文章:

linux - 为什么我不能在分辨率为 800x600 的显示器上运行 Qt Qml 应用程序?

qt - 一种避免在 C++ 中定义 QObject 属性的样板代码的方法(可从 QML 访问)?

c - 创建动态通用数组时,realloc 出现段错误

symbian - 在一个可执行文件中支持跨多个设备的 Symbian 旋转传感器

java - 中央按钮 软键 LWUIT

Qt QPushButton 样式表悬停

c - 段错误,我不知道是什么原因造成的

c - 向结构添加元素时出现段错误

c++ - 访问新数据库时应用程序崩溃

Qt : How to add a widget to right of QStatusBar