From eec9fdbabbbccb7a7ec4a61369b1ec93c09cd555 Mon Sep 17 00:00:00 2001 From: "Evgeny Grechnikov (Diamond)" Date: Sat, 27 Oct 2007 22:54:42 +0000 Subject: [PATCH] 69.4 and 69.5 now do not require debugging privileges git-svn-id: svn://kolibrios.org@667 a494cfbc-eb01-0410-851d-a64ba20cac60 --- kernel/trunk/core/debug.inc | 16 +++++++++++----- kernel/trunk/docs/sysfuncr.txt | 14 ++++---------- kernel/trunk/docs/sysfuncs.txt | 15 +++++---------- 3 files changed, 20 insertions(+), 25 deletions(-) diff --git a/kernel/trunk/core/debug.inc b/kernel/trunk/core/debug.inc index 5ce3854247..2afd23c82e 100644 --- a/kernel/trunk/core/debug.inc +++ b/kernel/trunk/core/debug.inc @@ -79,8 +79,11 @@ debug_terminate: debug_suspend: ; in: ebx=pid ; destroys eax,ebx - call get_debuggee_slot - jc .ret + cli + mov eax, ebx + call pid_to_slot + test eax, eax + jz .ret mov bl, [CURRENT_TASK+eax+TASKDATA.state] ; process state test bl, bl jz .1 @@ -110,9 +113,12 @@ do_resume: debug_resume: ; in: ebx=pid ; destroys eax,ebx - call get_debuggee_slot - jc .ret - call do_resume + cli + mov eax, ebx + call pid_to_slot + test eax, eax + jz .ret + call do_resume .ret: sti ret diff --git a/kernel/trunk/docs/sysfuncr.txt b/kernel/trunk/docs/sysfuncr.txt index c4e70e3180..99089e4f2b 100644 --- a/kernel/trunk/docs/sysfuncr.txt +++ b/kernel/trunk/docs/sysfuncr.txt @@ -3933,8 +3933,8 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); Если отладчик этого не хочет, он должен предварительно отключиться подфункцией 3. -Все подфункции применимы только к процессам/потокам, запущенным -из текущего функцией 70 с установленным флагом отладки. +Все подфункции, кроме 4 и 5, применимы только к процессам/потокам, +запущенным из текущего функцией 70 с установленным флагом отладки. Отладка многопоточных программ пока не поддерживается. Полный список подфункций: * подфункция 0 - определить область данных для отладочных сообщений @@ -4032,7 +4032,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * Если процесс был приостановлен, он возобновляет выполнение. ====================================================================== -==== Функция 69, подфункция 4 - приостановить отлаживаемый поток. ==== +=========== Функция 69, подфункция 4 - приостановить поток. ========== ====================================================================== Параметры: * eax = 69 - номер процесса @@ -4040,13 +4040,10 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * ecx = идентификатор Возвращаемое значение: * функция не возвращает значения -Замечания: - * Процесс должен быть загружен для отладки (как указано в - общем описании). ====================================================================== ====================== Функция 69, подфункция 5 ====================== -============ Возобновить выполнение отлаживаемого потока. ============ +=================== Возобновить выполнение потока. =================== ====================================================================== Параметры: * eax = 69 - номер функции @@ -4054,9 +4051,6 @@ Architecture Software Developer's Manual, Volume 3, Appendix B); * ecx = идентификатор Возвращаемое значение: * функция не возвращает значения -Замечания: - * Процесс должен быть загружен для отладки (как указано в - общем описании). ====================================================================== ====================== Функция 69, подфункция 6 ====================== diff --git a/kernel/trunk/docs/sysfuncs.txt b/kernel/trunk/docs/sysfuncs.txt index 438e7573c3..1bf3c2cb59 100644 --- a/kernel/trunk/docs/sysfuncs.txt +++ b/kernel/trunk/docs/sysfuncs.txt @@ -3899,8 +3899,9 @@ When debugger terminates, all debugged processes are killed. If debugger does not want this, it must previously detach by subfunction 3. -All subfunctions are applicable only to processes/threads started -from the current by function 70 with set debugging flag. +All subfunctions except 4 and 5 are applicable only to +processes/threads started from the current by function 70 +with set debugging flag. Debugging of multithreaded programs is not supported yet. The full list of subfunctions: * subfunction 0 - define data area for debug messages @@ -3998,7 +3999,7 @@ Remarks: * If the process was suspended, it resumes execution. ====================================================================== -======== Function 69, subfunction 4 - suspend debugged thread. ======= +============= Function 69, subfunction 4 - suspend thread. =========== ====================================================================== Parameters: * eax = 69 - function number @@ -4006,12 +4007,9 @@ Parameters: * ecx = thread identifier Returned value: * function does not return value -Remarks: - * Process must be loaded for debugging (as is shown in - general description). ====================================================================== -======== Function 69, subfunction 5 - resume debugged thread. ======== +============= Function 69, subfunction 5 - resume thread. ============ ====================================================================== Parameters: * eax = 69 - function number @@ -4019,9 +4017,6 @@ Parameters: * ecx = thread identifier Returned value: * function does not return value -Remarks: - * Process must be loaded for debugging (as is shown in - general description). ====================================================================== = Fucntion 69, subfunction 6 - read from memory of debugged process. =