小编Nis*_*mar的帖子

PTrace:linux/user.h:没有这样的文件或目录

我在intel 32位机器上使用Ubuntu 12.04和linux-headers-3.2.0-60.我正在尝试构建这个简单的程序来理解PTrace.但是在编译期间遇到错误.

#include <sys/ptrace.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <linux/user.h>   /* For constants
                                   ORIG_EAX etc */
int main()
{   pid_t child;
    long orig_eax;
    child = fork();
    if(child == 0) {
        ptrace(PTRACE_TRACEME, 0, NULL, NULL);
        execl("/bin/ls", "ls", NULL);
    }
    else {
        wait(NULL);
        orig_eax = ptrace(PTRACE_PEEKUSER,
                          child, 4 * ORIG_EAX,
                          NULL);
        printf("The child made a "
               "system call %ld\n", orig_eax);
        ptrace(PTRACE_CONT, child, NULL, NULL);
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我收到这些错误:

make all 
Building file: ../src/Test.cpp
Invoking: Cross G++ …
Run Code Online (Sandbox Code Playgroud)

linux ptrace ubuntu-12.04

9
推荐指数
2
解决办法
1万
查看次数

无法通过AppDomains传递GCHandle:没有代表的解决方案?

我在c ++中有基础库,客户端应用程序在C#中.有一个c ++/cli接口可以从C#访问c ++ api.一切都运行正常,直到多个应用程序域没有像NUnit或WCF托管一样发挥,即有一个应用程序域.

我已经在cli 中的gcroot中存储了托管对象以进行回调.我已经读过这是应用程序域问题的根本原因("无法通过AppDomains传递GCHandle")因为它们没有应用程序域信息(http://lambert.geek.nz/2007/05/29/unmanaged -appdomain-callback /).有人建议使用委托,但我的基础c ++层期望对象不是函数指针(http://www.lenholgate.com/blog/2009/07/error-cannot-pass-a-gchandle-across-appdomains.html).我也尝试过IntPtr,但在这种情况下,我无法在回调期间将其强制转换为我的托管对象.

UPDATE

让我再详细说明一下我的问题.

我在C#中有"Receiver"类,它作为输入参数传递给api之一.此接收器对象用于回调.在C++/CLI中,我创建了一个Native/unmanaged类"ObjectBinder",它与托管的Receiver类具有相同的副本(具有相同的方法).它保存了gcroot中托管接收者对象的参考.当我们从C#调用api时,它来到CLI层,app域是"client exe".我们在gcroot中的ObjectBinder中存储参数"managed receiver object",并将本机ObjectBinder对象的引用传递给C++.现在后端代码(c ++和c)将一个asyn回调(新线程)发送到c ++层,该层使用ObjectBinder对象向CLI发送回调用.现在我们在ObjectBinder对象的CLI层中.但是App域已被更改(在WCF或NUNIT或任何其他创建它自己的App域的服务的情况下,在编译时不知道).现在我想访问存储在gcroot中的托管Receiver对象,以便将回调发送回C#,但它给出了APP DOMAIN错误.

我也尝试过IntPtrIUnknown*而不是gcrootMarshal :: GetIUnknownForObjectMarshal :: GetObjectForIUnknown但是得到相同的错误.

.net c# com c++-cli com-interop

8
推荐指数
1
解决办法
5014
查看次数

涌入:应用保留策略后,所有旧数据都被删除

我有大量过去7天的数据.我应用了保留政策,突然所有数据都被删除了.我有单一的涌入运行实例.

CREATE RETENTION POLICY stats_30_day ON server_stats DURATION 30d REPLICATION 1

ALTER RETENTION POLICY stats_30_day ON server_stats DURATION 30d REPLICATION 1 default
Run Code Online (Sandbox Code Playgroud)

知道出了什么问题吗?

influxdb

7
推荐指数
1
解决办法
2494
查看次数

码头单元测试设置

我想为我的产品设置一个单元测试环境.我在Lua的nginx上构建了一个使用mysql和redis的web应用程序.我认为虽然我是码头工人的新手,但码头工作人员会很好.我的应用程序在centos服务器(生产服务器)上运行.

我打算为mysql,redis和webapp设置不同的容器,然后在我的mac(我的开发机器是MAC)或VM中编写UT应用程序(使用Busted框架进行Lua的单元测试)来测试它.UT应用程序将与docker容器nginx通信,nginx将使用容器mysql和redis.这个好吗 ?如果是,有人可以指导我如何做到这一点?也许一些很好的链接?如果不是,那可能是更好的方法.我已经尝试过使用vagrant但是花了太多时间,这不应该是我的UT情况.

lua unit-testing docker openresty

6
推荐指数
1
解决办法
657
查看次数

kafka 经纪商领导者倾斜

我有 10 个节点的 kafka 集群。kafka 代理和 Zookeeper 都在每个节点上运行。最近我们添加了 3 个新节点 8、9 和 10,昨天有 2 个节点关闭(2 和 4)。我有一个有 60 个分区和 3 个复制的主题。在kafka管理器中,Brokers Skewed %显示为50和Brokers Leader Skewed %70。我已经从UI手动重新分配了分区, Brokers Skewed %现在是0,但它没有改变Brokers Leader Skewed %。我还运行了命令:

$ kafka-preferred-replica-election.sh  --zookeeper localhost:2181 --path-to-json-file test.json

Warning: --zookeeper is deprecated and will be removed in a future version of Kafka.
Use --bootstrap-server instead to specify a broker to connect to.
Created preferred replica election path with ...
Successfully started preferred replica …
Run Code Online (Sandbox Code Playgroud)

apache-kafka apache-zookeeper

5
推荐指数
1
解决办法
8068
查看次数

c ++唯一指针:内存泄漏

我对独特指针的释放方法感到困惑.这是我的示例程序.

class Test
{
public:
    Test(){std::cout << "ctor" << std::endl;}
    ~Test(){std::cout << "dtor" << std::endl;}
};

int main() {
    std::unique_ptr<Test> ptr(new Test());
    ptr.release(); // memory leak
    //ptr.reset(); // this is ok but not necessary
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

ctor
Run Code Online (Sandbox Code Playgroud)

因为它不打印dtor我假设它不调用析构函数Test会导致内存泄漏.吗?

c++ memory-leaks smart-pointers unique-ptr c++11

4
推荐指数
1
解决办法
1185
查看次数

Elasticsearch:在嵌套对象中删除/更新字段

{
  "_index" : "test",
  "_type" : "test",
  "_id" : "1212",
  "_version" : 5,
  "found" : true,
  "_source" : {
    "count" : 42,
    "list_data" : [ {
      "list_id" : 11,
      "timestamp" : 1469125397
    }, {
      "list_id" : 122,
      "timestamp" : 1469050965
    } ]
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我的文档架构.list_data是嵌套对象.我要求更新/删除内部的特定字段list_data.我能够count使用groovy脚本更新字段.

$ curl -XPOST 'localhost:9200/index/type/1212/_update?pretty' -d '
{
    "script" : "ctx._source.count = 41"
}'
Run Code Online (Sandbox Code Playgroud)

但不知道如何更新嵌套对象.

例如,我想将其添加到list_data.

{
   "list_id" : 121,
   "timestamp" : 1469050965
}
Run Code Online (Sandbox Code Playgroud)

我的文件应改为:

{
  "_index" : …
Run Code Online (Sandbox Code Playgroud)

groovy elasticsearch

3
推荐指数
1
解决办法
4253
查看次数

java:为什么主线程等待子线程完成

我有一个简单的java程序。一个主线程 ( main()) 被创建并启动另一个线程t

class T extends Thread{
    @Override
    public void run() {
        while (true){
            System.out.println("Inside thread");
        }
    }
}

public class Main {
    public static void main(String[] args) {
        Thread t = new T();
        t.start();
        //t.join();
        System.out.println("end");
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

end
Inside thread
Inside thread
Inside thread
....
....
Run Code Online (Sandbox Code Playgroud)

它无限打印Inside thread。我不是在使用 join() 等待主线程中的子线程。打印结束后主线程不应该退出吗?

更新:

当 Java 虚拟机启动时,通常有一个非守护线程(通常调用某个指定类的名为 main 的方法)。Java 虚拟机继续执行线程,直到发生以下任一情况:

  • 已调用 Runtime 类的退出方法并且安全管理器已允许退出操作发生。
  • 所有不是守护线程的线程都已死亡,要么是从对 run 方法的调用中返回,要么是通过抛出传播到 run 方法之外的异常。

我找到了原因。第二点澄清了它。我假设所有子线程都将在主线程退出后终止(我错了)并且 JVM 应该关闭。

java multithreading

3
推荐指数
1
解决办法
1816
查看次数

为什么方法定义是可选的?

我不确定这段代码是如何工作的.根据我的理解,应该定义所有声明的方法.

class Test
{
public:
void foo();
};

int main()
{
Test t;
return 0;
}
Run Code Online (Sandbox Code Playgroud)

在类中Test,方法foo()已声明但未定义,仍然此代码正常工作.请解释为什么这样做.这样做是不是错误,因为只有声明的方法没有用,除非它是在抽象类或接口中?我的猜测是方法的声明告诉编译器它,所以编译器不会抱怨它,它会正常工作,直到有人真正尝试使用此方法.如果是这样,那么为什么允许这样做仍然没有意义?是否有任何具体原因或用途?

c++ methods

0
推荐指数
1
解决办法
88
查看次数