2009-08-28 70 views
0

我使用VS2k8在Vista x64上使用MPICH2庫編寫和編譯(但不運行)程序。然後,我使用命令行中的mpiexec來啓動程序(只有一個進程用於調試),並且我想將gdb附加到它。簡單地使用attachgdb --pid=###不起作用(我得到錯誤Can't attach to process),大概是因爲VS沒有用正確的調試信息編譯代碼。另一方面,儘管有幾次Google會話,我還沒有找到VS用於編譯的實際命令行,所以我不能只進去編輯它。需要幫助將gdb附加到我的項目中

請注意,我用的VS唯一原因是因爲我不能讓G ++試圖從命令行編譯的時候,而VS只需要點幾下,使一切工作找到MPI庫。 (是的,我試過-I-l交換機,但無濟於事)

我只需要將gdb附加到運行我的MPI程序的進程,我並不在乎它是如何完成的。任何幫助表示讚賞。

+0

這可能是一個goopd主意,問第二個問題(不要編輯此一個)關於在Windows上使用g ++編譯MPI(不管是什麼),如果這是你真正想要做的。 – 2009-08-28 11:38:50

回答

2

cl.exe時(Visual Studio中)和gdb的二進制格式是不兼容的不幸。除非您可以找出使用gcc重新編譯代碼的方法,否則您將無法使用gdb進行調試。同時,您可以直接使用Visual Studio來調試程序,方法是轉到工具>附加到進程(或按Ctrl + Alt + P)

+0

不幸的是,該程序僅在通過mpiexec啓動時才起作用,因此VS的調試也不是微不足道的。我想我會堅持使用'cout'來調試我的代碼。 :) – suszterpatt 2009-08-28 11:48:27

+0

呃,這是一個無賴:) – 2009-08-28 11:58:54

+0

爲什麼不通過mpiexec啓動它後,將VS調試器附加到您的過程? – mmmmmmmm 2009-08-28 17:48:08

2

gdb將不起作用,但可以使用Gflags使程序無論何時啓動,都可以從調試器(VS,windbg,...)運行。還有一個註冊表選項,直接做到這一點:HKLM \ SOFTWARE \微軟\的Windows NT \ CURRENTVERSION \圖像文件執行選項\映像\調試