![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Многое не работает как в POSIX, а msvcrt.dll - это только лишь майкросовтовская реализация стандартной библиотеки, насколько можно приближенная к POSIX, но в общем и целом стандарту не соответствующая. Но! Майкрософт разработала специальную подсистему POSIX, в которой реализован стандарт, но в которой уже недоступны родные вызовы WinAPI. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: нет Всего: 110 |
||||
|
||||
volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
Два раза прочитал, так и не понял, что нужно...
1.
То есть родитель вам больше не нужен. и он может благополучно завершиться, оставив работать дочерний? 2. мысль, перпендикулярная первой ![]() Нужно чтобы висели оба, причем родитель, исключительно для того чтоы при прибивании его, прибивался и дочерний? (больше от него проку то нет, все его функции замещены дочерним.)
Сформулируйте задачу четко. Тогда может и сами решите. А пока не сформулируете чётко, ее никто не решит. (и посикс тут не причем) Это сообщение отредактировал(а) volatile - 23.12.2012, 00:25 |
||||
|
|||||
feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Нет, нет, всё понятно. Просто пытались рассмотреть разные возможности, поэтому такие несоответствия... Но всё неудачно ![]() А если всё таки запускать gdb (или что там) через bat-файл, в котором и выставлять нужные переменные окружения? Вот это ![]() -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
Ну раз все понятно, тогда видимо я недостаточно сообразителен. Посему, удаляюсь... ЗЫ: Хочу сказать только, что если первое, то делал неоднократно, и все прекрасно работало. Если второе не делал, потому как бессмысленно, но уверен что и это сделать можно. |
|||
|
||||
boostcoder |
|
||||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: нет Всего: 110 |
ну... я хз что в нем хитрого..gdb как gdb.
нужно попробовать. а можно взглянуть на фрагмент кода? ибо я сам проверял, и сабж невозможен. я больше склоняюсь к тому, что в вендус, вообще невозможно заменить родительский процесс дочерним. Добавлено через 9 минут и 35 секунд я вот только не понял, начиная с какой версии вендус предоставляется это? |
||||
|
|||||
volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
boostcoder, я щас скомпилил тот код что приведен в этой теме. в этом посте:
У меня так: Ззапускается родитель. затем он запускает дочерний. затем родитель завершается. дочерний остается с той консолью, что была у родителя и полноценно работает и на ввод и на вывод. Все пашет. А вот зачем это мне не понять... ![]() |
||||
|
|||||
feodorv |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Это вряд ли ![]() Вот этого не хотелось бы... Как раз хотелось бы Вашего участия...
Так и я о том же... Что-то здесь не так ![]() Как я понимаю всё же, gdb скомпилён в GNU окружении, эмулирующем поведение UNIX. И как там сказывается эта эмуляция - я хз)))
Как раз начиная с NT, какое-то там военное ведомство отказалось сертифицировать Windows NT без надлежащей поддержки POSIX. Изначально был реализован POSIX.1, сейчас число вызовов расширено (то ли 2000, то ли 3000 штук), но всё равно работа возможна только в текстовом режиме. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||
|
|||||
volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
В father.exe нажимаем 'f', запускается son.exe, father.exe завершаецца.
Для выхода нажимаем точку "." father.exe
son.exe
![]() Добавлено через 1 минуту и 41 секунду езешники father.exe, son.exe положить в одну папку. Присоединённый файл ( Кол-во скачиваний: 4 ) ![]() |
||||
|
|||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: нет Всего: 110 |
я размышляю привычными для меня терминами. в линукс, замещение процесса означает, загрузку другого процесса в адресное пространство первого. то, что описал ты, дает почти тот же результат. (я не говорю про наследование UID и GID)
это следствие того, что невозможен сабж, и приходится искать альтернативные способы достижения цели. нет. gdb умеет работать в нативной вендус среде. странно...впервые вообще слышу о такой штуковине. посмотрел экспорт dll`ки - да, экспортируются POSIX функции. Добавлено через 3 минуты и 44 секунды volatile, спасибо. завтра буду проверять. что-то уже и я запутался ![]() Добавлено через 7 минут и 16 секунд кто-то может подсказать, существуют ли вообще в открытом доступе исходники этой psxdll.dll? |
|||
|
||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
так... этого в теме еще не было... В таком случае это еще и 3 альтернатива, того что нужно ТС... ![]() Имхо, здесь каждый говорит о своем, потому-что
|
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: нет Всего: 110 |
ладно, пусть сформулирует...
|
|||
|
||||
alexx83 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 29.3.2010 Репутация: нет Всего: 1 |
Спасибо что присоединились к этой теме volatile.
Задача проста: пишется враппер к gdb. Задача враппера изменить переменные среды и запустить gdb так чтобы он оставался привязанным к консоли в которой запущен враппер. Первый вариант - при этом враппер нам больше не нужен и он должен быть уничтожен. Второй вариант (если враппер не может быть уничтожен) - при завершении враппера должен завершаться и сам gdb. Для примера, вы работаете в IDE и запускаете приложение на отладку. Вместо самого gdb сначала запускается враппер который потом запускает gdb. IDE ничего не знает о враппере. По поводу вашего примера volatile. У меня от не работает как у вас на картинке ![]()
Может это глюк винды? |
||||
|
|||||
volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 13 Всего: 85 |
Естественно. Это же ваш код, взятый в этой теме. Я просто взял ваш код и показал что у меня он работает. alexx83, понятно, я попробую воссоздать баг, если удастся конечно. (я не пользуюсь gdb). По крайней мере, проблема прояснилась. |
|||
|
||||
boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: нет Всего: 110 |
volatile, вот как у меня работают тобою предкомпилированные екзешники:
![]() Добавлено через 11 минут и 7 секунд win7, 64-bit. Добавлено через 13 минут и 24 секунды по выводу видно, что sun.exe запускается как отдельно введенная команда, а значит наследование дескрипторов не происходит. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |