我正在开发一个相当复杂的软件,它偶尔会在退出时出现分段。我试图用valgrind来研究这个问题,但是我得到的输出并没有告诉我QString的众多用法中哪一个是有问题的。
我在--track-origins=yes中使用了valgrind,但这也无助于区分它是哪一个。
==28264== Invalid read of size 4
==28264== at 0x563B66: QBasicAtomicInt::deref() (qatomic_x86_64.h:133)
==28264== by 0x563DC6: QString::~QString() (in build/out
我试图做一些相当简单的事情,但不明白为什么我会出错。我有一个Makefile,我会包括在内,这样你就可以看到发生了什么。但是当我跨过这个程序的时候,我得到了libc-start.c: No such file or directory。有没有办法在Makefile中处理这个问题,还是避免这个问题?
Makefile
# makefile to build a program
# program depends on components: name and main
myname: main.o name.o
g++ -g -ggdb main.o name.o -o
我有一个A类和一个B类,它们是从A派生出来的:
class A
{
public :
A() { // Some code }
virtual ~A(){}
// etc
};
这是我的B班:
class B : public A
{
public :
B():A(){//Some extra code}
~B();
// etc
};
A和B的真正代码很长,所以我不会把它放在那里,除非有必要。
我的问题是,在我的主程序:
当我实例化A时,它没有问题
当我实例化B时,我可以“播放”它(访问它的成员等等),但是当程序完成时,我得到了一个分段错误。
我们正在开发一个框架,它直接使用,而后者又使用OpenCV 2.4。我们正在编写单元测试,当测试存在时(例如,在清理过程中),使用OpenCV错误:cv::String::deallocate()进行分段错误。
我试过的是:
奔走
==26159== Conditional jump or move depends on uninitialised value(s)
==26159== at 0x7DB7F5: cv::String::deallocate() (in /home/alex/codez/robot_platform/build/test_slam)
==26159==
静态类中有几个锁(boost:: mutex ),但是当程序退出时,pthread_mutex_destroy在互斥锁的析构函数中失败(在boost中有一个断言对此进行检查)。
据我所知,pthread_mutex_destroy只会在两种情况下失败。
[EBUSY] The implementation has detected an attempt to destroy the object referenced by mutex while it is locked or referenced (for example, while being used in a pthread_
我在找一个窃听器。通过使用gdb,我可以看到:
Program received signal SIGSEGV, Segmentation fault.
0x00007f4325cc286f in std::ostream::flush() () from /usr/lib/libstdc++.so.6
(gdb) bt
#0 0x00007f4325cc286f in std::ostream::flush() () from /usr/lib/libstdc++.so.6
#1 0x00007f4325c8d31c in std::ios_base::Init::~Init() ()
我正在尝试交叉编译的STM32F板。我发现是这样的问题,但我在配置步骤中遇到了问题。
我已经用apt install gcc-arm-none-eabi安装了交叉编译工具。
我运行./autogen.sh,然后是export CC=arm-none-eabi-gcc和./configure --host=arm-none-eabi。我还尝试了来自上述问题的其他主机选择。
但配置返回:
checking for arm-none-eabi-gcc... arm-none-eabi-gcc
checking whether the C compiler works... no
configure:
我将TCP流套接字连接到给定的主机名和端口。要获得主机的IP地址,我使用,如下所示
struct addrinfo hints;
struct addrinfo *result, *server;
memset(&hints, 0, sizeof(struct addrinfo)); // fill server with 0
hints.ai_family = AF_INET; // set address family
hints.ai_protocol=0; // set protocol type to auto
hints.ai_socktype = SOCK_
我正试图在ubuntu12.04LTS上安装一个英特尔e1000以太网卡驱动程序。当我打字时
制造安装
发生以下错误:
Makefile:111:* Linux内核源代码未配置-缺少version.h。停止播放。
在自述文件中,您说:
当试图通过运行make编译驱动程序时,可能会发生以下错误:
"Linux内核源代码未配置-缺少版本.h“
要解决这个问题,请转到Linux源代码树并输入:
make include/linux/version.h。
我尝试在/usr/src/linux*******文件夹中运行这个命令,但是没有结果。
(
i have linux