Исходная ситуация:
язык - c#, студия - vs10.
Есть приложение (dll), в котором надо в числе прочего запустить один ехе. Т.к. оба приложения мои, то код есть.
Запуск выглядит следующим образом:
// create process
System.Diagnostics.Process oldClient = new System.Diagnostics.Process();
// set name (это полное имя с путем и расширением)
oldClient.StartInfo.FileName = sNameClientExe;
// StartInfo
oldClient.StartInfo.UseShellExecute = false;
oldClient.StartInfo.RedirectStandardOutput = true; // я потом хочу иметь все логи, написанные ехешником, в основном приложении
oldClient.StartInfo.Arguments = sArguments;
// start
bool bRet = oldClient.Start();
проблема:
в ехе - шнике что-то падает (если его запустить самостоятельно, то все ок...),
посему надо его посетить дебагом.
Раньше я всегда в начале кода в ехешнике встраивала что-то типа:
int nnn = 50;
int mmm = 5 / nnn - 50;
чтобы программа начала орать благим матом по поводу ошибки. А тут я вся из себя спасительница - говорю: "конечно хочу посмотреть, в чем дело" и спокойно попадаю дебаггером внутрь.
Но все это было до 10-й студии... А в ней этот номер не проходит....
Я решила сделать по-другому: встроила там цикл с ожиданием
for (int i = 0; i < 5; i++)
{
Console.WriteLine(Tools.Helpers.SetLogString("\n" + c_strFuncName, "before Sleep - OK"));
System.Threading.Thread.Sleep(5000);
}
чтобы успеть из студии сказать "attach to process".
Успеваю, но студия мне рассказывает, что кода для дебага нет...
ладно, решила пойти через taskManager - оттуда сказать, что хочу дебаггить процесс. В результате попытки прицепиться процесс убивается... Почему - не знаю (в этот момент там крутится System.Threading.Thread.Sleep(5000);
дабы у меня было время на подключение к процессу до той точки, в которой все падает).
Вопрос: как еще можно прицепиться дебаггером к работающему ехе?
Я понимаю, что я - полный тормоз, но меня это не спасает... Попытка погуглить на эту тему ничего не дала (подозреваю, что как-то неудачно составила запрос)
забыла написать показываемое при попытке поставить брейкпоинт сообщение - классика жанра:
no symbols have been loaded for this document
malaja, 16:54:
так, ничего не понимаю...
сейчас взяла и тупо создала 2 проекта - оник как WinForms (чтобы удобней было), второй - как консольное приложение. внесла описанные вышей действия, стартовала - все работает! я прекрасно могу аттачить открытый проект к стартовавшему ехешнику! И никаких рассказов о том, что брейкпоинт не соответствует коду!