Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to index page
Thread view  Board view
Japheth

Homepage

Germany (South),
18.10.2010, 08:17
 

Debug v1.19 (Announce)

Enjoy - if you can!

It's just 1 bugfix - for the DPMI-aware DEBUGX.

changes: http://www.japheth.de/Debug/README.TXT

http://www.japheth.de/debxxf.html

---
MS-DOS forever!

ecm

Homepage E-mail

Düsseldorf, Germany,
18.10.2010, 19:39

@ Japheth
 

Debug v1.19

From the other thread:
> It's probably worth to be noted that it was this example which made me
> aware that DEBUG v1.18 wasn't able to reset its breakpoints when a mode
> switch occured in the debuggee ( fixed in v1.19 ).
>
> Another note: the bugfix for v1.19 includes a temporary mode switch inside
> the debugger under certain conditions. Debug uses DPMI raw-mode switches
> for this. It has turned out that this approach won't work with CWSDPMI v5.
> HDPMI, Windows 9x/ME and Windows XP are ok. DosEmu is untested yet.

Interesting. But note that this is not strictly required if the current mode is PM (with breakpoints that were set in RM), and that it doesn't handle cases correctly where a selector's descriptor has changed while running. That can be addressed by storing linear addresses and using scratchsel to store/restore the breakpoints.

Your comment regarding interrupt 20h usage for MZ programs is, AFAIK, wrong. For interrupt 20h, MS-DOS will assume in some (but not all) places that the terminating process's address is the current cs (ie. that executed the int 20h opcode). (Not all DOS share this feature.) DOS doesn't really track what kind of executable format a program was loaded from. This means you can correctly terminate MZ programs with interrupt 20h, but only if you fixed up cs in such a way that it is equal to your PSP. (This IIRC applies to Int21.00 too, but not to Int27 or Int21.31.) Just sayin'

---
l

Japheth

Homepage

Germany (South),
19.10.2010, 08:33

@ ecm
 

Debug v1.19

Please don't use this thread for "discussion". It's an announcement.

IIRC you already opened a "discussing DEBUG" thread - why not using that one?

---
MS-DOS forever!

ecm

Homepage E-mail

Düsseldorf, Germany,
19.10.2010, 14:23

@ Japheth
 

Debug v1.19

> Please don't use this thread for "discussion". It's an announcement.

Why not?

> IIRC you already opened a "discussing DEBUG" thread - why not using that
> one?

It was for one specific issue. It's even named regarding that issue. It would be off-topic to extend that thread for other things.

I made a thread for "discussing DEBUG" here now.

---
l

Japheth

Homepage

Germany (South),
20.10.2010, 09:57

@ Japheth
 

Debug v1.20

v1.20 contains 2 changes mainly to make CWSDPMI work with the v1.19 bugfix.

changes: http://www.japheth.de/Debug/README.TXT

http://www.japheth.de/debxxf.html

---
MS-DOS forever!

Japheth

Homepage

Germany (South),
29.10.2010, 19:13

@ Japheth
 

Debug v1.21

v1.21 contains 1 bugfix - still the "resetting bps if mode switch..."-issue.

changes: http://www.japheth.de/Debug/README.TXT

http://www.japheth.de/debxxf.html

---
MS-DOS forever!

DOS386

26.12.2010, 08:53

@ Japheth
 

BUG in JDEBUG 1.22

> v1.21 contains 1 bugfix

GOOD news: JDEBUG 1.22 is out (2010-11-11, 45 days ago)

BAD news: it still has a BUG:

"DEBUG.TXT" 27'599 2009-05-17 13:46 wrote:

> For a direct memory operand, the offset address of the data is
> specified in the operand. For an indirect memory operand, the offset
> address of the data is calculated at run-time using the contents of
> one or two registers and an optional displacement. In 16bit code, the
> registers can be a base register (BX or BP) or an index register (SI or DI),
> or one of each. The following examples illustrate the differences
> between constant operands, register operands, direct memory
> operands, and indirect memory operands:

> MOV AX,100 ; Moves the value 100 into AX
> MOV AX,BX ; Copies the value in BX to AX
> MOV AX,[100] ; Copies the word at DS:100 to AX
> MOV AL,[BP+2]; Copies the byte at DS:BP+2 to AL

> JMP 100 ; Destination offset is 100
> JMP AX ; Destination offset is the value in AX
> JMP [100] ; Destination offset is the word at DS:100
> JMP [BX] ; Destination offset is the word at DS:BX
> JMP [BX+4] ; Destination offset is the word at DS:BX+4

should be " SS:BP+2 " I ASS'ume. There a few few more things that could be improved in this text, BTW. :hungry:

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

Rugxulo

Homepage

Usono,
26.12.2010, 20:58

@ DOS386
 

BUG in JDEBUG 1.22

> BAD news: it still has a BUG:

More like a "typo".

> "DEBUG.TXT" 27'599 2009-05-17 13:46 wrote:
>
> > MOV AL,[BP+2]; Copies the byte at DS:BP+2 to AL
>
> should be " SS:BP+2 "

Yes, of course, by default BP does assume SS.

Back to index page
Thread view  Board view
22049 Postings in 2034 Threads, 396 registered users, 253 users online (0 registered, 253 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum