ygrek писал(а):
Во-первых, золотое правило, когда приводите код который не работает - приводите его полностью! Так чтобы Ctrl-C Ctrl-V и запустить.
На будущее учту. Ловите:
Код:
WINAPI: EnumWindows USER32.DLL
WINAPI: SendMessageA user32.dll
WINAPI: EnumChildWindows USER32.DLL
WINAPI: PostMessageA USER32.DLL
WINAPI: SetWindowTextA USER32.DLL
WINAPI: DestroyWindow USER32.DLL
WINAPI: GetWindowThreadProcessId USER32.DLL
WINAPI: OpenProcess KERNEL32.DLL
WINAPI: TerminateProcess KERNEL32.DLL
WINAPI: ShowWindow user32.dll
WINAPI: SetActiveWindow user32.dll
WINAPI: SetFocus USER32.DLL
WINAPI: SetForegroundWindow USER32.DLL
WINAPI: BringWindowToTop USER32.DLL
WINAPI: GetWindowRect USER32.DLL
WINAPI: GetCursorPos USER32.DLL
WINAPI: SetCursorPos user32.dll
WINAPI: IsIconic USER32.DLL
WINAPI: GetWindowThreadProcessId USER32.DLL
260 CONSTANT MAX_PATH
REQUIRE WINCONST lib/win/const.f
REQUIRE LOAD-CONSTANTS ~yz/lib/const.f
S" ~yz\cons\windows.const" LOAD-CONSTANTS
W: WM_GETTEXT CONSTANT WM_GETTEXT
W: PROCESS_ALL_ACCESS CONSTANT PROCESS_ALL_ACCESS
W: SW_SHOW CONSTANT SW_SHOW
REQUIRE [IF] E:\SP-Forth\lib\include\tools.f
REQUIRE [NONAME ~nn\lib\locals.f
REQUIRE PLACE ~mak\place.f
REQUIRE WIN-EXIST? ~nn/lib/win/windows/ops.f
S" ~nn/lib/win/windows/for-win.f" INCLUDED
S" ~nn/lib/win/windows/ops.f" INCLUDED
: T01
S" nnCron WinSpy" WIN-EXIST?
;
ygrek писал(а):
В данном конкретном примере - ищу слово WIN-EXIST? в nncron. Скопировал - запустил - посмотрел чего не хватает, нашёл-скопировал-запустил и так раз пять. Такой процесс элементарно отбивает желание помогать, раз вопрошающий не потрудился как можно более облегчить задачу. Иначе говоря - какой вопрос, такой ответ. Телепаты, кстати, в отпуске. Вообщем в результате получил таки рабочий код - причём никаких ошибок не вылетает. Так что делайте выводы.
Вопрос к Вам: Вы искали то окно, которое у Вас было открыто или нет? Дело в том, что у
меня при загрузке тоже никаких ошибок не возникает, кроме сообщений "isn't unique". Ошибка возникает только при выполнении слова и только при том условии, что разыскиваемое окно открыто. Если окна нет - нет и ошибки.
ygrek писал(а):
Во-вторых,
in4 писал(а):
Можно добавить отладочных печатей, включить STARTLOG и посмотреть создаваемый файл.
mrack писал(а):
и вставляем туда строки вида "CR 1 . KEY DROP \ сюда можно еще добавить вывод отчета по стеку"
Зачем делать работу машины?!
Код:
lib/ext/debug/tracer.f
TraceON
http://spf.sourceforge.net/docs/devel.ru.html#debugГм.... Как бы это помягче сформулировать, чтобы формулировка не вызвала ещё большего Вашего раздражения... Вобщем, по ссылке на указаный файл вылетает:
Код:
Error notes: File does not exist: /home/groups/s/sp/spf/htdocs/lib/ext/debug/tracer.f
. И не только на этом файле, но и на всех остальных. Мне повезло, что этот файл есть у меня на диске. Я его подключил и изменил слово T01:
Код:
: T01
TraceON
S" nnCron WinSpy" WIN-EXIST?
;
На этапе выполнения вылезло вот что:
Код:
DOES> isn't unique
: isn't unique
; isn't unique
CharUpperBuffA isn't unique
CHAR- isn't unique
\EOF isn't unique
Make for debugging
GetWindowThreadProcessId isn't unique
TlsAlloc isn't unique
TlsFree isn't unique
TlsSetValue isn't unique
TlsGetValue isn't unique
TlsIndexStore isn't unique
SaveTlsIndex isn't unique
RestoreTlsIndex isn't unique
QWNDPROC: isn't unique
WIN-HWND isn't unique
WIN-CHILD-HWND isn't unique
FW-ONE? isn't unique
FW-ONE isn't unique
GetWindowTextByMessage isn't unique
WIN-TEXT isn't unique
<FOUND-WINDOW> isn't unique
(FOUND-WINDOW) isn't unique
FOUND-WINDOW isn't unique
FOUND-CHILD-WINDOW isn't unique
fwList isn't unique
fwMask isn't unique
fwH isn't unique
fwTitle isn't unique
fwXT isn't unique
fwGetText isn't unique
fwOne isn't unique
/FW-BUF isn't unique
FW-ENUM-PROC isn't unique
FW-BUF isn't unique
FW-BODY isn't unique
FW-CHILD-BODY isn't unique
(ENUM-WINDOWS) isn't unique
(ENUM-CHILD-WINDOWS) isn't unique
(FOR-WINDOWS) isn't unique
(FOR-PWINDOWS) isn't unique
(FOR-CWINDOWS) isn't unique
FOR-WINDOWS isn't unique
;FOR-WINDOWS isn't unique
FOR-CHILD-WINDOWS isn't unique
;FOR-CHILD-WINDOWS isn't unique
win-flag isn't unique
WIN-EXIST? isn't unique
WIN-CHILD-EXIST? isn't unique
WIN-OP isn't unique
ALL? isn't unique
ALL isn't unique
WIN-PASS isn't unique
WIN-CLOSE isn't unique
<win-set-title> isn't unique
WIN-SET-TITLE isn't unique
WIN-DESTROY isn't unique
WIN-TERMINATE isn't unique
SW_OP isn't unique
SHOW-WIN isn't unique
WIN-MINIMIZE isn't unique
WIN-MAXIMIZE isn't unique
WIN-RESTORE isn't unique
WIN-HIDE isn't unique
WIN-SHOW isn't unique
PUSH-WINDOW isn't unique
POP-WINDOW isn't unique
win-p1 isn't unique
win-p2 isn't unique
win-p3 isn't unique
win-p4 isn't unique
win-p5 isn't unique
WIN-CLICK isn't unique
win-send-msg isn't unique
WIN-MSG isn't unique
WIN-CHILD-MSG isn't unique
WIN-ACTIVATE isn't unique
T01
> FORTH WIN-EXIST? [2] 5664635 13
| > FORTH FW-ONE [2] 5664635 13
| < FORTH FW-ONE [2] 5664635 13
| > FORTH (FOR-PWINDOWS) [3] 5664635 13 5660733
| | > FORTH (FOR-WINDOWS) [5] 5664635 13 5660733 5659152 5658768
| | | > FORTH PLACE [3] 5664635 13 3311104
| | | | > FORTH $! [3] 5664635 13 3311104
| | | | | > FORTH "CLIP" [3] 5664635 3311104 13
| | | | | < FORTH "CLIP" [3] 5664635 3311104 13
| | | | < FORTH $! [0]
| | | < FORTH PLACE [0]
| | | > FORTH S>NUM [2] 5664635 13
| | | | > FORTH S>DOUBLE [2] 5664635 13
| | | | < FORTH S>DOUBLE [2] 0 0
| | | < FORTH S>NUM [1] 0
| | | > FORTH (ENUM-WINDOWS) [2] 5648752 3311100
ygrek писал(а):
В-третьих можно проанализировать дамп исключения и заметить какое слово сбойнуло, что на стеке возратов, если подключить ~pinka/spf/exc-dump.f из cvs то можно посмотреть и стек данных на момент исключения.
Да я бы с удовольствием, но на диске у меня этого файла нету. А по Вашей ссылке
Код:
Error notes: File does not exist: /home/groups/s/sp/spf/htdocs/devel/~pinka/spf/exc-dump.f
ygrek писал(а):
Замечу что у меня такие слова вообще не встречаются в коде поэтому подозрение что мы запускали разный код. Возвращаемся к пункту 1.
См.выше.