Принудительно высокий PID в Windows - PullRequest
1 голос
/ 24 ноября 2010

В настоящее время мы тестируем исправление для старого приложения VB6, первоначальная версия программы получает PID и сохраняет его в int, а затем записывает в базу данных.Это работает нормально, пока вашему приложению не будет присвоен PID выше 32768, и в этом случае вы получите переполнение, и приложение умрет.

Мы исправили это, изменив все на long вместо int.но сейчас у нас проблемы с тестированием.Мы редко видим эту проблему в наших производственных средах (но с разрушительным эффектом, когда она возникает), и никогда в тестировании.Я пытался спровоцировать высокий PID, порождая тонну программ, но мне так и не удалось преодолеть PID 25000.

Я нашел инструмент под названием HighPid (http://winprogger.com/?p=29), но, к сожалению, его неткажется, выполняет свои обещания. Так есть ли у кого-нибудь подобный (но работающий) инструмент или какой-то другой прием, чтобы заставить высокий PID на сервере Windows?

Ответы [ 2 ]

2 голосов
/ 24 ноября 2010

Запустить 32767 манекена, действительно, легковесные процессы?;-) 100 КБ * 32 КБ = 3,2 ГБ, поэтому ОЗУ не должно ограничивать вас.

1 голос
/ 24 ноября 2010

Вы могли бы взглянуть на это с другой точки зрения и использовать инструмент, который получает идентификатор процесса, что-то вроде (псевдокод):

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

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