我想在某些行(模式)之后将一些文本插入到我的c ++文件中。以下是我的文件结构。
38 #include "stdlib.h"
39 #include "string.h"
40 #include "malloc.h"
41
...
324 void DMProcMon::threadManagerMonitorThread(DMProcMon* dmProcMon)
325 {
...
338 while (dmState == DVProcMon::Active &&
339 DmManService::getDCMRestartingFlag() == 0){
340 try{
342 setupTimerVerification(dmProcMon);
343 setupSignalVerification(dmProcMon);
344
....
360 }
我想使用gcov添加代码覆盖宏。基本上我需要实现的是
在所有#include语句之后添加以下文字。
45 #ifdef GCOV
46 extern "C"
47 void _gcov_flush();
48 #endif
在threadManagerMonitorThread函数
中的while语句后面添加以下文本#ifdef GCOV
_gcov_flush();
#endif
所以最终的代码会像下面那样松散。
38 #include "stdlib.h"
39 #include "string.h"
40 #include "malloc.h"
41
45 #ifdef GCOV
46 _gcov_flush();
47 #endif
...
324 void DMProcMon::threadManagerMonitorThread(DMProcMon* dmProcMon)
325 {
...
338 while (dmState == DVProcMon::Active &&
339 DmManService::getDCMRestartingFlag() == 0){
340 try{
342 #ifdef GCOV
343 _gcov_flush();
344 #endif
346 setupTimerVerification(dmProcMon);
347 setupSignalVerification(dmProcMon);
348
....
360 }
这样做的最佳方法是什么。我想用bash或者pythyon来做这件事。
由于 382 4
答案 0 :(得分:0)
您可以使用sed
在包含特定模式的行之前/之前插入一行。见:https://stackoverflow.com/a/11695086/2749648。
同样here是关于如何在代码块之后插入一行的解释(这将帮助您使用#include
块)但我不确定如何修复{{1声明。如果while语句在一行上,那将很容易,但这很难保证。