有没有一种方法可以从外部控制C ++代码流?

时间:2019-03-29 13:05:12

标签: c++11

我有一个示例代码:

#include<iostream>
main()
{
    int i = 10; //Line 1
    std::cout<<" i : "<<i; //Line 2
}

我想以某种方式在Line-1和Line 2之间插入另一条语句(再说一个std :: cout)。

直接方法是更改​​源代码并添加所需的行。但是由于我的源代码编译需要很多时间,因此我负担不起频繁更改代码的负担。因此,我想要一种自动方式,使我能够从外部在任何函数中执行任何语句,以便在单击该函数时执行我新给定的语句。

我不确定这是否可行。但是以可以满足我的要求的方式编写原始代码的任何方向都是有帮助的。

[用于调试目的]

2 个答案:

答案 0 :(得分:0)

如果要执行新的C ++代码,则必须先对其进行编译。我认为您无法避免这种情况。但是,您可以尝试通过各种做法来减少编译所花费的时间,例如使用标头防护以及对标头进行选择性选择。

答案 1 :(得分:0)

在gdb中,您可以做很多事情来修改程序遇到不间断断点时的行为。打印命令还可以用于更改值,例如print i=0实际上将i设置为零。

请记住,所有这些更改和黑客攻击都需要移植回源代码并再次进行测试!多年来,我在运行代码中进行内联黑客攻击后,丢失了许多出色的编辑,然后退出而没有查看所做的更改。