2016-07-02 38 views
0

我在Winform中使用cmd發出Cscope命令。有時它成功返回並且有時會給出(大部分時間)cygwin_exception :: open_stackdumpfile:轉儲堆棧跟蹤到cscope.exe.stackdumpcygwin_exception :: open_stackdumpfile:將堆棧跟蹤轉儲到cscope.exe.stackdump

我無法確定問題。的C#這變成命令代碼如下:

代碼:上述

CalledFunctionsNameCmdArgument = "/C cscope -k -u "+ FileNameAlongWIthDirectoryPath(in Windows Style i.e. G:\ABC\DEF.c) + " -L -3 " + @""".*""" + " | gawk '{$1=" + "\"" + "\"" + "; $3=" + "\"" + "\"" + ";sub(" + "\"" + " \"" + ", " + "\"" + "\"" + ");" + "sub(" + "\"" + " \"" + ", " + "\"" + "#" + "\"" + ");" + "print}' > " + OutputDirectory(In linux Style i.e. G:/ABC/DEF) 

代碼行的輸出爲:

/C cscope -k -u FileNameAlongWIthDirectoryPath -L -3 ".*" | gawk '{$1=""; $3="";sub(" ", "");sub(" ", "#");print}' > OutputDirectory 

什麼可以是問題?

堆棧跟蹤轉儲

Exception: STATUS_ACCESS_VIOLATION at rip=0010040DCE8  
rax=0000000000000035 rbx=0000000000000001 rcx=0000000000000001  
rdx=0000000600055CE0 rsi=0000000600055CE0 rdi=0000000000000001  
r8 =00000000FFFFB7BC r9 =00000001801523A0 r10=0000000100000000  
r11=000000010040DF72 r12=00000000FFFFBE00 r13=00000001004DCDA8  
r14=0000000000000000 r15=00000001004DC880  
rbp=0000000000000000 rsp=00000000FFFFBA60  
program=G:\Cygwin\usr\local\bin\cscope.exe, pid 64364, thread main 
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B  
Stack trace:  
Frame  Function Args  
00000000000 0010040DCE8 (0060007A3CA, 0000000000A, 00180042D46, 000FFFFBFE0)  
000FFFFBB00 0010040EF1B (00100430038, 000FFFFCC70, 00000000006, 000FFFFCC70)  
00100430038 0010040C676 (001000001C0, 000FFFFC8F0, 001004DCEE0, 0000000FB6C)  
00100430038 0010042F7AA (00180276D60, 006000283A0, 00000000000, 000FFFFCCC0)  
000FFFFCCC0 00180047BD2 (00000000000, 00000000000, 00000000000, 00000000000)  
00000000000 0018004591C (00000000000, 00000000000, 00000000000, 00000000000)  
000FFFFFFF0 001800459B4 (00000000000, 00000000000, 00000000000, 00000000000)  
End of stack trace  
+0

不看cscope.exe.stackdump的內容很難說。對於相同的數據,cygwin會發生同樣的問題嗎? – matzeri

+0

即使在CMD中運行相同的命令也沒有,我不會收到任何此類錯誤。 –

+0

我已將內容添加到問題中。 –

回答

0

即使我不能找到問題的確切原因,但我想這是編輯的文件(另一個命令的結果「unifdef」)所需的文件permission.I和將結果保存在另一個文件中,然後將這些結果文件提供給cscope沒有產生問題。應用unifdef命令後保存文件,以某種方式更改了文件權限(我想不是因爲unifdef,而是通過命令提示符保存文件更改了權限文件)。