1

現在、古いVB6アプリケーションのバグ修正をテストしています。プログラムの初期バージョンでは、PIDを取得してintに格納し、データベースに書き込みます。これは、アプリケーションに32768より大きいPIDが割り当てられるまでは正常に機能します。割り当てられた場合、オーバーフローが発生し、アプリケーションが停止します。

これを修正するために、すべてをintではなくlongに変更しました。しかし、今は問題のテストがあります。この問題は、実稼働環境ではめったに見られず(ただし、発生すると壊滅的な影響を及ぼします)、テストでは見られません。大量のプログラムを生成して高いPIDを誘発しようとしましたが、PID25000を超えることはできませんでした。

HighPid(http://winprogger.com/?p=29)というツールを見つけましたが、残念ながら、その約束を果たしていないようです。それで、Windowsサーバーで高いPIDを強制するための同様の(しかし機能している)ツール、または他のトリックを持っている人はいますか?

4

2 に答える 2

2

32767 ダミーの本当に軽量なプロセスを起動しますか? ;-) 100kb*32k = 3.2Gb なので、RAM によって制限されることはありません。

于 2010-11-24T13:29:55.580 に答える
1

別の観点から見て、(疑似コード) のようなプロセス ID を取得する関数をインストルメント化できます。

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

    #if DEBUG
      return pid + 32000;
    #else
      return pid;
    #endif
}
于 2010-11-24T13:42:01.397 に答える