mtdbg: Fixed magic cmd flags
Signed-off-by: Max Logaev <maxlogaev@proton.me>
This commit was merged in pull request #312.
This commit is contained in:
@@ -122,7 +122,13 @@ struc fpcvt
|
||||
.sizeof:
|
||||
}
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Command flags
|
||||
|
||||
CMD_WITHOUT_PARAM = 1b ; command may be called without parameters
|
||||
CMD_WITH_PARAM = 10b ; command may be called with parameters
|
||||
CMD_WITHOUT_LOADED_APP = 100b ; command may be called without loaded program
|
||||
CMD_WITH_LOADED_APP = 1000b ; command may be called with loaded program
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Entry point
|
||||
@@ -449,63 +455,56 @@ z1:
|
||||
mov esi, commands
|
||||
call find_cmd
|
||||
mov eax, aUnknownCommand
|
||||
jc .x11
|
||||
|
||||
; check command requirements
|
||||
; flags field:
|
||||
; &1: command may be called without parameters
|
||||
; &2: command may be called with parameters
|
||||
; &4: command may be called without loaded program
|
||||
; &8: command may be called with loaded program
|
||||
jc .cmd_procg
|
||||
mov eax, [esi+8]
|
||||
mov ecx, [curarg]
|
||||
cmp byte [ecx], 0
|
||||
jz .noargs
|
||||
test byte [esi+16], 2
|
||||
jz .x11
|
||||
test byte [esi+16], CMD_WITH_PARAM
|
||||
jz .cmd_procg
|
||||
jmp @f
|
||||
|
||||
.noargs:
|
||||
test byte [esi+16], 1
|
||||
jz .x11
|
||||
test byte [esi+16], CMD_WITHOUT_PARAM
|
||||
jz .cmd_procg
|
||||
|
||||
@@:
|
||||
cmp [debuggee_pid], 0
|
||||
jz .nodebuggee
|
||||
mov eax, aAlreadyLoaded
|
||||
test byte [esi+16], 8
|
||||
jz .x11
|
||||
jmp .x9
|
||||
test byte [esi+16], CMD_WITH_LOADED_APP
|
||||
jz .cmd_procg
|
||||
jmp .run_cmd
|
||||
|
||||
.nodebuggee:
|
||||
mov eax, need_debuggee
|
||||
test byte [esi+16], 4
|
||||
jnz .x9
|
||||
test byte [esi+16], CMD_WITHOUT_LOADED_APP
|
||||
jnz .run_cmd
|
||||
|
||||
.x11:
|
||||
.cmd_procg:
|
||||
xchg esi, eax
|
||||
call put_message
|
||||
|
||||
; store cmdline for repeating
|
||||
.x10:
|
||||
.cmd_procg_no_put_msg:
|
||||
mov esi, cmdline
|
||||
mov ecx, [cmdline_len]
|
||||
|
||||
@@:
|
||||
cmp ecx, 0
|
||||
jle .we
|
||||
jle .wait_event
|
||||
mov al, [esi + ecx]
|
||||
mov [cmdline_prev + ecx], al
|
||||
dec ecx
|
||||
jmp @b
|
||||
|
||||
.we:
|
||||
.wait_event:
|
||||
mov [cmdline_len], 0
|
||||
jmp waitevent
|
||||
|
||||
.x9:
|
||||
.run_cmd:
|
||||
call dword [esi+4]
|
||||
jmp .x10
|
||||
jmp .cmd_procg_no_put_msg
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
; Cmdline handling
|
||||
|
||||
@@ -1880,66 +1880,85 @@ help_groups:
|
||||
;-----------------------------------------------------------------------------
|
||||
; Commands format definitions
|
||||
|
||||
; TODO: make it with macros
|
||||
|
||||
; flags field:
|
||||
; &1: command may be called without parameters
|
||||
; &2: command may be called with parameters
|
||||
; &4: command may be called without loaded program
|
||||
; &8: command may be called with loaded program
|
||||
commands:
|
||||
dd _aH, OnHelp, HelpSyntax, HelpHelp
|
||||
db 0Fh
|
||||
db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITHOUT_LOADED_APP or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aHelp, OnHelp, HelpSyntax, HelpHelp
|
||||
db 0Fh
|
||||
db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITHOUT_LOADED_APP or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aQuit, OnQuit, QuitSyntax, QuitHelp
|
||||
db 0Dh
|
||||
db CMD_WITHOUT_PARAM or CMD_WITHOUT_LOADED_APP or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aLoad, OnLoad, LoadSyntax, LoadHelp
|
||||
db 6
|
||||
db CMD_WITH_PARAM or CMD_WITHOUT_LOADED_APP
|
||||
|
||||
dd aReload, OnReload, ReloadSyntax, ReloadHelp
|
||||
db 0Dh
|
||||
db CMD_WITHOUT_PARAM or CMD_WITHOUT_LOADED_APP or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aTerminate, OnTerminate, TerminateSyntax, TerminateHelp
|
||||
db 9
|
||||
db CMD_WITHOUT_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aDetach, OnDetach, DetachSyntax, DetachHelp
|
||||
db 9
|
||||
db CMD_WITHOUT_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aSuspend, OnSuspend, SuspendSyntax, SuspendHelp
|
||||
db 9
|
||||
db CMD_WITHOUT_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aResume, OnResume, ResumeSyntax, ResumeHelp
|
||||
db 0Bh
|
||||
db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aStep, OnStepMultiple, StepSyntax, StepHelp
|
||||
db 0Bh
|
||||
db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aProceed, OnProceedMultiple, ProceedSyntax, ProceedHelp
|
||||
db 0Bh
|
||||
db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aCalc, OnCalc, CalcSyntax, CalcHelp
|
||||
db 0Eh
|
||||
db CMD_WITH_PARAM or CMD_WITHOUT_LOADED_APP or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aDump, OnDump, DumpSyntax, DumpHelp
|
||||
db 0Bh
|
||||
db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aUnassemble, OnUnassemble, UnassembleSyntax, UnassembleHelp
|
||||
db 0Bh
|
||||
db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aBp, OnBp, BpSyntax, BpHelp
|
||||
db 0Ah
|
||||
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aBpm, OnBpmb, BpmSyntax, BpmHelp
|
||||
db 0Ah
|
||||
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aBpmb, OnBpmb, BpmSyntax, BpmHelp
|
||||
db 0Ah
|
||||
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aBpmw, OnBpmw, BpmSyntax, BpmHelp
|
||||
db 0Ah
|
||||
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aBpmd, OnBpmd, BpmSyntax, BpmHelp
|
||||
db 0Ah
|
||||
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aBl, OnBl, BlSyntax, BlHelp
|
||||
db 0Bh
|
||||
db CMD_WITHOUT_PARAM or CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aBc, OnBc, BcSyntax, BcHelp
|
||||
db 0Ah
|
||||
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aBd, OnBd, BdSyntax, BdHelp
|
||||
db 0Ah
|
||||
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aBe, OnBe, BeSyntax, BeHelp
|
||||
db 0Ah
|
||||
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aReg, OnReg, RSyntax, RHelp
|
||||
db 0Ah
|
||||
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aUnpack, OnUnpack, UnpackSyntax, UnpackHelp
|
||||
db 9
|
||||
db CMD_WITHOUT_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd aLoadSymbols, OnLoadSymbols, LoadSymbolsSyntax, LoadSymbolsHelp
|
||||
db 0Ah
|
||||
db CMD_WITH_PARAM or CMD_WITH_LOADED_APP
|
||||
|
||||
dd 0
|
||||
|
||||
;-----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user