小编Giu*_*Pes的帖子

kprobe vs uprobe系统调用interposition

我想通过使用Utrace编写系统调用插入.我知道Utrace项目已被放弃,但其部分代码用于kprobe和uprobe.

我还不太了解这些是如何运作的.特别是uprobe您能解释一下他们之间存在什么差异?我可以使用uprobe而无需编写模块来检查哪些是系统调用的实际参数?

谢谢

linux selinux system-calls linux-device-driver linux-kernel

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

死锁linux管道

我想了解Linux管道是如何工作的!我写了一个小而简单的程序,它使用管道在父进程和子进程之间传递字符串.但是,该程序导致死锁,我不明白它的原因是什么.

这是代码:

#include <sys/wait.h>
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>

#define SIZE 100  

int
main(int argc, char *argv[])
{
    int pfd[2];
    int read_pipe=0, write_pipe=0; 
    pid_t cpid;
    char buf[SIZE]; 

    /* PIPE ***************************************
     * pipe() creates a pair of file descriptors, *
     * pointing to a pipe inode, and places them  *
     * in the array pointed to by filedes.    *
     * filedes[0] is for reading,         *
     * filedes[1] is for writing          *
     **********************************************/

    if (pipe(pfd) == -1) …
Run Code Online (Sandbox Code Playgroud)

c unix linux pipe linux-kernel

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

使用空数组时比较运算符JavaScript的奇怪行为

你能解释一下奇怪的JavaScript行为吗?

第一:

[] === []  false
[] ==  []  false
Run Code Online (Sandbox Code Playgroud)

为何错误?对象是相同的,因此它应该返回true.

第二:

 [] !== []  true
 [] !=  []  true
Run Code Online (Sandbox Code Playgroud)

再次,为什么是真的?对象是相同的.

javascript

2
推荐指数
2
解决办法
2107
查看次数

为什么不用模板实现新的?

我正在尝试new使用一些额外的信息来追踪内存泄漏.我知道,我可以new全局覆盖一个运算符,但我惊讶地发现我无法检索有关所分配对象类型的任何信息(如果我错了,请纠正我).显然,当您决定覆盖new运算符时,获取类型信息将是有益的.

例如,我已经实现了一个简单的通用版本newdelete使用了可变参数模板.

std::string to_readable_name(const char * str)
{
    int status;
    char *demangled_name = abi::__cxa_demangle(str, NULL, NULL, &status);
    if(status == 0) {
        std::string name(demangled_name);
        std::free(demangled_name);
        return name;
    }
    return "Unknown";
}

template <typename T, typename... Args>
T * generic_new(Args&&... args) throw (std::bad_alloc)
{
    const std::size_t size = sizeof(T);
    std::cout << "Allocating " << size << " bytes for " << to_readable_name(typeid(T).name()) << std::endl;
    return new T(std::forward<Args>(args)...);
};

template<typename T>
void generic_delete(T* …
Run Code Online (Sandbox Code Playgroud)

c++ memory-management c++11

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

对如何使用JScover感到困惑

我需要检查我的Jscript应用程序中的测试覆盖率.我使用Qunit作为单元测试框架.我不能让Jscover正常工作.我不明白我应该如何使用它,我应该发出哪个命令以及我必须在路径中指定哪些目录.

这是我的文件系统的结构:

JSON/ 
css/
html/
images/  
js/
test/
index.html  
Run Code Online (Sandbox Code Playgroud)

我要测试的代码在js文件夹中,而qunit测试在test文件夹中.

javascript testing jquery unit-testing

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

可移植的本机客户端解析主机时权限被拒绝

我正在编写一个小应用程序来测试和理解PNaCl.

该应用程序的目的是使用PNaCl框架中的HostResolver类将主机名解析为主机的ip .代码似乎工作正常,但我得到一个访问被拒绝错误(返回值-7)因为我没有向用户请求访问套接字层(我猜)的权限.问题是我不知道该怎么做.我试着写一个清单文件,但什么都没发生.

注意:此应用程序必须在开放的Web上运行,并且不能要求任何安装过程.我不想写Chrome应用.

我没有在网上找到任何线索所以我将非常感谢你的帮助.

hello_tuttorial.cc:

#include <stdio.h>
#include <string.h>
#include <sstream>


#include "ppapi/cpp/instance.h"
#include "ppapi/cpp/module.h"
#include "ppapi/cpp/var.h"
#include "ppapi/cpp/tcp_socket.h"
#include "ppapi/cpp/host_resolver.h"
#include "ppapi/cpp/module.h"
#include "ppapi/cpp/tcp_socket.h"
#include "ppapi/c/pp_errors.h"
#include "ppapi/utility/completion_callback_factory.h"


namespace {
  // exptected string from the browser 
  const char * const kHelloString = "hello"; 
  // the sting sent from the nacl module to the browser
  const char * const kReplyString ="hello from the PNaCl"; 
} 


class HelloTutorialInstance : public pp::Instance {

  pp::CompletionCallbackFactory<HelloTutorialInstance> callback_factory_;
  pp::TCPSocket tcp_socket_; …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome google-chrome-extension google-nativeclient google-chrome-app

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

为什么这个JS代码打印未定义?

我不明白为什么foo在以下代码中未定义值:

var foo = 1;

function bar() {
    if (false) {
        var foo = 10;
    }
    alert("Foo is " + foo);
}

bar();
Run Code Online (Sandbox Code Playgroud)

结果:Foo是undefined. https://jsfiddle.net/yk7ae9b0/

而这些变化表现如预期.

var foo = 1;

function bar() {
    if (true) {
        var foo = 10;
    }
    alert("Foo is " + foo);
}

bar();
Run Code Online (Sandbox Code Playgroud)

结果:Foo是10

var foo = 1;

function bar() {
    if (false) {
       // var foo = 10;
    }
    alert("Foo is " + foo);
}

bar();
Run Code Online (Sandbox Code Playgroud)

结果:Foo为1

任何帮助将非常感激.

javascript

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

打破依赖

我从未深入研究过Java.最近,我不得不处理一个我想调查的行为,因为我还没有完全理解它.

你能解释一下为什么主包不需要导入包b吗?虽然aa方法的参数是B类型.

此代码正常工作.

这种特殊情况可以看作是内联依赖注入吗?

package c;
import b.*;
public class C {
    B b=new B(); 

    public B cc(){ 
        return b; 
    }

}

package a;
import b.*; 

public class A {

    public void aa(B b) {}
}


package b; 
public class B {}



import a.A; 
import c.C; 

public class Test {

    public static void main(String[] args) {

        A a = new A(); 
        C c = new C();
        a.aa(c.cc()); 
        System.out.print("Test"); 
    }
}
Run Code Online (Sandbox Code Playgroud)

java dependency-injection

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

Java时间转换数据时出错

我对这个数据的翻译有一点问题 19/12/2005 17:30:45到mileseconds.我不知道为什么,我得到一个错误的翻译到6月28日17:30:45 CEST 1995时间:804353445798

我使用的代码是这样的:

private static long ConvertTimeToTimeStamp(String time) {   

  Integer[] data = new Integer[6];
  String [] tokens = time.split(" "); 

  System.out.println(tokens[0]);
  System.out.println(tokens[1]);

  String[] d_m_y = tokens[0].split("/"); 
  String[] hh_mm_ss = tokens[1].split(":"); 

  for (int i = 0; i < d_m_y.length; i++) {
    data[i]=Integer.parseInt(d_m_y[i]); 
    // System.out.println(d_m_y[i]);        
  }

  for (int i = 0; i < hh_mm_ss.length; i++) {
    data[i+3]=Integer.parseInt(hh_mm_ss[i]); 
    //  System.out.println(hh_mm_ss[i]);    
  }
  //Calendar calendar =  Calendar.getInstance(); 
  GregorianCalendar calendar = new GregorianCalendar(); 
  calendar.set(data[0]+1970, data[1], data[2], data[3],data[4],data[5]);

  System.out.println(calendar.getTime().toString()); 
  return calendar.getTimeInMillis(); 
}
Run Code Online (Sandbox Code Playgroud)

java

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

正则表达式以高亮显示文本中的单词

我用魔杖突出用于进行研究的词.我试图在JavaScript中使用正则表达式,但我得到以下问题.

这是我正在使用的代码:

var key_word = "and"; 
var text= "I bought milk and water"; 
var re = new RegExp("(" + key_word + ")", 'ig'); 
text = text.replace(re, "<strong>$1</strong>"); 
console.log(text);
Run Code Online (Sandbox Code Playgroud)

正确的结果:

I bought milk <strong>and</strong> water. 
Run Code Online (Sandbox Code Playgroud)

但随着文字

var text = "I am getting a better understanding.";
Run Code Online (Sandbox Code Playgroud)

错误的结果:

I am getting a better underst<strong>and</strong>ing.
Run Code Online (Sandbox Code Playgroud)

javascript regex

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