如何在linux

时间:2016-04-29 19:54:20

标签: c linux performance gcc

上述链接blocking-and-resuming-execution-of-an-independent-process-in-linux中的解决方案说,我可以使用ptrace来实现我的目标 我试图运行代码 - how ptrace work between 2 processes  ,但没有得到任何输出。

特别要求知道如何使用ptrace使程序只执行调试器中的几条指令。

如何在以下情况下使用ptrace限制其他进程访问少量指令?

我在linux下有两个独立的C程序。 Program1 正在 CPU core-1 中运行,而 Program-2 正在 CPU core-2 中运行。

Program-2正在执行共享库函数func-2,它由200行指令组成,用于对数据执行操作(add + shift)。

shared library function 
-------
func-2()
{
// code to perform operation (add+shift) on data
} 
--------   
Program2.

main()
{
while(1)
func-2();
}
program1

main()
{
 while()
 {


// ptrace 

// OR

//kill STOP <pid of program2>
    // kill CONT <pid of program2>
}}

我想从Program-1或bash 中限制program-2 ,这样Program-2只能执行少量指令或限制运行1-2微秒,我可以在Program2中添加任何代码。 程序1知道程序2的PID和func-2的基地址。

我听说过可以用来控制其他进程的ptrace,并且使用ptrace可以限制进程只执行1条指令。对我来说,即使限制1-2微秒(5-10条指令)也是足够的。

如何控制运行其他CPU核心的Program-2?任何相关文件的链接都非常感谢。提前致谢。 我在linux下使用gcc。

0 个答案:

没有答案