2010-11-24 52 views
1

我們正在測試舊的VB6應用程序的錯誤修正,程序的初始版本將獲取PID並將其存儲在一個int中,然後將其寫入數據庫。這工作正常,直到您的應用程序被分配一個高於32768的PID,在這種情況下,您會溢出並且應用程序死亡。在窗口中強制使用高PID

我們通過將所有內容改爲long而不是int來解決此問題。但現在我們有一個測試問題。我們在生產環境中很少見到這個問題(但在發生時具有破壞性影響),並且從不進行測試。我試圖通過產生大量程序來激發高PID,但是我從來沒有設法通過PID 25000。

我確實找到了一個名爲HighPid的工具(http://winprogger.com/?p= 29)但遺憾的是,它似乎並沒有兌現承諾。那麼,有沒有人有類似的(但工作)的工具,或其他一些技巧,以強制在Windows服務器上的高PID?

+2

爲什麼不是假的高PID在你的代碼? – 2010-11-24 13:36:10

+0

當我們能夠在.Net中運行一個新的應用程序時,不想將任何額外的測試代碼添加到已經很脆弱的VB6應用程序中。這只是爲了讓我們在這個過程中度過。 – Grubsnik 2010-11-24 14:13:55

回答

2

推出32767虛擬真正輕量級的流程? ;-) 100kb * 32k = 3.2Gb,所以RAM不應該限制你。

1

你可以看它從不同的角度和儀器檢索進程ID的功能,像(僞):

function GetPID() 
{ 
    // ... retrieve process id 

    #if DEBUG 
     return pid + 32000; 
    #else 
     return pid; 
    #endif 
}