使用execv和ptrace在Linux中执行selenium-webdriver python程序

时间:2018-11-30 03:12:05

标签: python c linux selenium-webdriver ptrace

我写了一个C程序,下面用execv运行shell命令,用ptrace跟踪它。

    pid = fork();
    if (pid == 0) {
        // child process
        ptrace(PTRACE_TRACEME, 0, NULL, NULL);
        char** argv = new char*[3];
        argv[0] = "/usr/bin/python3.6";
        argv[1] = "pythoncode.py";
        argv[2] = NULL;
        execv(argv[0], argv);
    } else
    {
        // parent process
        pid_t p = wait4(-1, &stat, __WALL, &rusage_);
        ...
    }

当我使用它运行普通的python代码时,它可以正常工作。但是今天,我在下面写了一个python代码

    from selenium import webdriver
    browser = webdriver.Chrome()
    # do something
    browser.close()

我可以在没有或没有ptrace的外壳中成功运行它,但是当我同时使用execvptrace时,它总是会给我一个停止信号,并且信号代码为{{1 }}(非法指令)。有人知道为什么以及如何解决吗?

0 个答案:

没有答案