我有如此简单的java应用程序,它只需创建一个对象,并在无限循环中调用一个函数。
public class h {
public static void main( String[] args) {
while(true) {
B b = new B();
b.print();
}
}
}
class B {
public void print() {
System.out.println("Hello I'am class B");
}
我使用的是zmq 4.2.2版本。我的程序崩溃是因为调用了zmq_abort(),它调用了abort()。根据堆栈跟踪,如果我正确理解,zmq_abort()是从src/socket_poller.cpp:54调用的。然而,这一行是函数定义的开始:
zmq::socket_poller_t::~socket_poller_t ()
该函数不直接调用zmq_abort()或任何调用它的断言宏。在整个文件中,对zmq_abort()的断言或直接调用也不多。但是,堆栈跟踪中的其他行似乎与github中的源代码相匹配:
执行如何在zmq_abort()中结束?
堆栈跟踪的开始:
Program te
我的程序有段错误。我尝试使用gdb的gdb命令查找bug,但不幸的是,我不理解它的输出:
(gdb) bt
#0 0x00007ffff1678480 in ?? () from /usr/lib/x86_64-linux-gnu/libnvidia-opencl.so.1
#1 0x00007ffff171c11e in ?? () from /usr/lib/x86_64-linux-gnu/libnvidia-opencl.so.1
#2 0x00007ffff17e565f in ?? () from /usr/lib/x86_64-linux-gnu/libnvidia-ope
我有一个简单的套接字服务器,它是在linux和Windows上用C实现的,我很难完全关闭它。
它创建一个套接字,绑定它,然后调用listen。然后,它使用select循环检测新的连接,并在任何当前连接的客户端套接字上执行读取活动。客户端关闭套接字是很好的,它唤醒了select,但我遇到的问题是干净利落地关闭循环。我天真地从另一个线程或响应信号或Ctrl-C关闭了服务器套接字(我正在侦听和接受的套接字),但这无法唤醒select,这让我感到惊讶。
如果有必要,我可以使用self管道技巧来等待select up (创建一个fifo并将读取端也包括在select列表中,然后在我想关闭时写入它),但考