代码之家  ›  专栏  ›  技术社区  ›  Grubsnik

在Windows中强制使用高PID

  •  1
  • Grubsnik  · 技术社区  · 14 年前

    我们目前正在测试一个旧的vb6应用程序的错误修复程序,该程序的初始版本将获取pid并将其存储在int中,然后将其写入数据库。在应用程序被分配一个高于32768的PID之前,这是可以正常工作的,在这种情况下,您将得到溢出,应用程序将死亡。

    我们通过将所有内容都改为long而不是int来解决这个问题,但是现在我们有了一个问题测试。我们很少在生产环境中看到这个问题(但在发生时会产生破坏性的影响),而且从未在测试中看到过。我试过通过生成大量程序来激发高PID,但我从未成功地通过PID 25000。

    我确实找到了一个名为highpid的工具(http://winprogger.com/?但遗憾的是,它似乎没有兑现承诺。那么,有没有人有类似的(但有效的)工具,或者其他一些技巧来强制Windows服务器使用高PID?

    2 回复  |  直到 14 年前
        1
  •  2
  •   BarsMonster    14 年前

    启动32767假人真的很轻的过程?;-) 100KB*32K=3.2GB,所以RAM不应该限制您。

        2
  •  1
  •   Francesco De Vittori    14 年前

    您可以从不同的角度看它,并插入检索进程ID的函数,例如(伪代码):

    function GetPID()
    {
        // ... retrieve process id
    
        #if DEBUG
          return pid + 32000;
        #else
          return pid;
        #endif
    }