我正在調試將通過CreateProcess
從本機Windows程序加載的cygwin gcc編譯過程。我想在主之前設置一個斷點,例如mainCRTStartup
。使用gdb附加到尚未啓動的進程
如何附加到尚未加載的進程並在mainCRTStartup
處設置斷點?
注意
如果它的事項,它不是XY問題。我正在分析Windows 2012 R2中的一個可能的錯誤,並且需要跟蹤從調用CreateProcess傳遞的整個命令行直到加載進程的主入口點。在我接近MS之前,我需要確定問題出在哪裏。
另外我需要使用gdb,因爲WinDBG可能無法源碼調試一個cygwin gcc編譯的二進制文件。
我有什麼企圖
使用GFLAGS,我試圖調用GDB當過加載圖像,但隨後不幸被一條消息招呼「文件名太長」,然後調用GDB沒有任何主動過程
這種方法的問題是,gflags調用調試器,圖像名稱後跟命令行參數,其中gdb需要PID或圖像名稱而不帶命令行參數。參考How to attach a process in gdb
你會怎麼辦* *任何一個不存在的過程?這很簡單:你不能。你會介意告訴我們你爲什麼要這樣做? (請閱讀[XY問題](http://meta.stackoverflow.com/questions/66377/what-is-the-xy-problem)。) –
@JoachimPileborg:它不是'XY問題'。我正在分析Windows 2012 R2中的一個可能的錯誤,並且需要跟蹤從調用CreateProcess傳遞到整個主入口點的整個命令行。在我接近MS之前,我需要確定問題出在哪裏。 – Abhijit
你沒有告訴我們爲什麼*你想做你想做的事情,你只是想知道如何使你當前的解決方案工作。所以確實是一個XY問題。現在我們至少知道你想做什麼,有知識的人可以說出你想要的解決方案是否可行,或者是否有其他解決方案(以前沒人能做到的最後一個)。 –