2011-10-20 13 views
6

Mam debugowanie programu w systemie MacOSX, i potrzebuję tego programu, który uważa, że ​​jesteśmy rok później niż ten podany przez system operacyjny.Debugowanie, Unix. Uruchom program o innym czasie niż system

Nie mogę zmienić czasu systemu operacyjnego, ponieważ muszę uruchomić drugi program równolegle z odpowiednim czasem. Mogłem zmodyfikować kod pierwszego programu, aby dodać jeden rok za każdym razem, gdy uzyska on czas z systemu operacyjnego, ale kod jest za duży, aby to zrobić; Wolę nie używać tego rozwiązania.

Kiedyś usłyszałem, że w systemie Unix jest polecenie do uruchomienia programu o fałszywym/wyśmianym czasie. Czy wiesz o tym?

+1

Jeśli wszystko inne zawiedzie, możesz uruchomić go w środowisku wirtualnym i ustawić czas w nim. Ostatecznie jednak jest to ogromny zamęt. –

Odpowiedz

4

Nie próbowałem tego, ale libfaketime twierdzi, że robi to, czego potrzebujesz.

Cytat ze strony internetowej:

Jako przykład, chcemy komenda „data”, by zgłosić naszą sfałszowane czasu. Aby to zrobić, możemy użyć następującego wiersza polecenia:

[email protected]> date 
Tue Nov 23 12:01:05 CEST 2007 

[email protected]> LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="-15d" date 
Mon Nov 8 12:01:12 CEST 2007 

Zakładając lib działa jak reklamowane, można oszukać program do myślenia, że ​​został uruchomiony rok przed użyciem:

LD_PRELOAD=/usr/local/lib/libfaketime.so.1 FAKETIME="+1y" ./your_program 
+1

Mac OS X używa innego łącznika, nie uważam, że zmienna środowiskowa jest taka sama. Wypróbuj DYLD_INSERT_LIBRARIES. – unwind

+0

@unwind Dobry punkt !! –

Powiązane problemy