簡體   English   中英

CGI程序在調試模式下運行

[英]CGI program run in debug mode

我們有一個C ++ CGI應用程序,可以處理一些Web請求。 我試圖在調試模式下運行相同的分析目的。 我采用的方法是通過gdb調用它:

第一步-重命名我的實際CGI應用程序,並使用相同的名稱放置自己的程序

在該程序中,我試圖使用GDB在調試模式下調用實際的CCGI應用程序:

const char* argv[] = ["gdb -p <pid> -batch -ex bt 2>/dev/null", NULL];

execve("./myprog", (char**)argv, NULL);

問題在於,由於myrog是CGI應用程序,因此需要從STDIN輸入。

如何捕獲程序中的輸入並將其傳遞給實際的CGI應用程序?

我做到了:在cgi main中,我添加了代碼來查找現有文件,例如/ var / tmp / flag。 當存在時,我會循環運行。 有足夠的時間通過gdb附加到cgi進程。 之后,我刪除/ var / tmp / flag,從現在開始我可以調試我的cgi代碼。

bool file_exists(const char *filename)
{
   ifstream ifile(filename);
   return ifile;
}

int cgiMain()
{

 while (file_exists ("/var/tmp/flag"))
     sleep (1);
 ...
 your code 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM