README.SI (from release version 2.80) SOFT-ICE FOR DOS OPERATING PROBLEMS FILE Updated 11/08/94 List of subjects within this file 1. SOURCE OUT OF SYNCH OR NO SOURCE DISPLAY 2. EXE NOT FOUND 3. NO SOURCE DISPLAY OR CANNOT FIND SOURCE 4. CTRL-ALT-DEL DOESN'T WORK 5. STRUCTURES NOT DISPLAYED 6. NETWORK TIMEOUT 7. VCPI DOESN'T WORK 8. SOFT-ICE HANGS AFTER BEING ENTERED AND EXITED 9. OUT OF SYMBOL SPACE 10. ALT-SYS-RQ HANGS ON EXIT 11. BPINT 2 BYTES OFF IN CODE 12. ACTION NMI DOESN'T TRANSFER TO CV 13. BACK TRACE DOESN'T WORK 14. KEYBOARD LOCKS AFTER NUM-LOCK OR CAPS-LOCK 15. LONG PATH TO .EXE FILE IS TRUNCATED 16. .COM FILE 17. PRT-SC NOT WORKING ON OLD-STYLE KEYBOARD 18. "INT 10 DOES NOT POINT TO..." 19. VERTICAL LINES ON SCREEN 20. TAPE BACKUP DOESN'T WORK WHEN S-ICE INSTALLED 21. OLIVETTI LAPTOP KYBD LOCKS UP 22. KEYBOARD 1 CHAR OFF 23. PROGRAM BLOWS UP WHEN LOADED WITH LDR 24. BPAND DOESN'T WORK 25. LOAD HI AREA IS NOT CLEARED ON WARM BOOT 26. COMPAQ ProSignia 486 WITH EISA SCSI DRIVE (VIRTUAL DMA) 27. USING SOFT-ICE WITH AN ADAPTEK SCSI DRIVE 28. MIXED BC/SI SCREEN OR BPM ON STACK DOESN'T WORK 29. USING FOREIGN KEYBOARDS 30. DEBUGGING DOS-EXTENDED OR PROTECTED MODE PROGRAMS 31. SOFT-ICE REBOOTS 32. INVALID OP-CODE REPORTED BY Soft-ICE 33. GP FAULT REPORTED BY Soft-ICE 34. GP FAULT WHILE LOADING MSC 7/8 PROGRAM 35. BOUNDS-CHECKER "STACK" GIVES GP FAULT WHEN SOFT-ICE IS LOADED 36. USING WITH CODEVIEW 4.0 37. RUNNING IN A DOS BOX 38. TRYING TO DISPLAY FLOATING POINT NUMBERS 39. RUNNING OUT OF MEMORY WITH BORLAND 4.0 IDE 40. HOT KEY FAILS TO POP UP Soft-ICE 41. USING MEMORY ABOVE 16 MEG 42. "NO HIGH MEMORY AVAILABLE" MESSAGE 43. "CAN'T FIND S-ICE.EXE" MESSAGE WHEN RUNNING UPDATESI.EXE 44. USING WITH OVERLAYED PROGRAMS 45. USING WITH SPAWNED PROGRAMS 46. LOADING DOUBLESPACE HIGH 47. "Error Loading A Source File" 48. FAULT WHILE TRYING TO DISPLAY A GLOBAL SYMBOL 49. ALTSCR DOES NOT WORK IN VERSION 2.7 50. GPF ON PUSH FD OR POP FD ( using back door command/BREAK ON ) 51. LDR OF TSR CAUSES A BLOW UP THE NEXT TIME THE TSR IS RUN 52. WINDOWS WONT'T LOAD WHEN SI-DOS IS PRESENT 53. REGISTER WINDOW OVEWRITTEN WITH DS:XXXX IN LOWER RIGHT 54. SOFT-ICE DOES NOT POP UP PROPERLY WHEN RUNNING BRIEF 55. USING SOFT-ICE WITH QL10DOS.SYS The following apply to Versions 2.62 and EARLIER ONLY !!!! 56. FLOPPY HANGS WHEN SOFT-ICE INSTALLED (GP ERROR IN CACHE) 57. TURBO DEBUGGER IN 43-LINE MODE 58. WRONG LINE #'S IN "STACK" COMMAND 59. GP ERROR DISASSEMBLING OR STEPPING THRU CODE 60. "ENTER PATH..." FOR BORLAND C++ 61. USING SOFT-ICE 2.60 & EARLIER WITH MSVC or BORLAND 3.1 62. USING SOFT-ICE 2.5x & EARLIER WITH MICROSOFT C/C++ 7.00 63. BPM BREAKPOINT REBOOTS (SOFT-ICE VERSION 2.60-2.62) 64. BORLAND 4.0 PROGRAMS DO NOT LOAD INTO SOFT-ICE 65. SNOW ON SCREEN WHEN USING WINDOWS (REAL MODE) 66. LOADING IN OVER 16M MEMORY OR 16M MEMORY NOMINAL 67. COMPAQ REBOOTS WHEN TRYING TO LOAD SOFT-ICE 68. USING SOFT-ICE ON A PENTIUM SYSTEM 69. LDR HANGS WHEN LOADING SYMBOLS 70. BAD PRINTOUT OF SOURCE LINES IN BACK TRACE 71. BACK TRACE PRINTOUT HAS LONG BLOCKS OF SPACES ------------------------------------------------------------------- 1. SOURCE OUT OF SYNCH OR NO SOURCE DISPLAY ------------------------------------------------------------------- Problem: Source display is out of synchronism or no source is displayed. Solution: There are 3 reasons why this happens: A header file (.h) has code or data within it. These files should contain definitions and declarations only. This is the only reason which applies to C language programs. A module has no public symbol at the start, or has no public symbols. This can occur in Pascal, Assembly and some other languages. A code module is not class "CODE". The linker will put this module after the Data, separated from the rest of the Code. This only applies to Assembly language programs. ------------------------------------------------------------------- 2. EXE NOT FOUND ------------------------------------------------------------------- Problem: Message ".EXE not found" displayed when doing LDR xxx.SYM on a driver. Solution: make a .EXE file by copying the .SYM file. ------------------------------------------------------------------- 3. NO SOURCE DISPLAY OR CANNOT FIND SOURCE ------------------------------------------------------------------- Problem: no source display or cannot find source files Reasons why no source display: 1: no debug data in the .EXE file, and no .SYM file 2: not enough /SYM space reserved 3. no source line # info in debug data 4. used LDR program-name.EXE Reasons why cannot find source files: 1. used path to LDR (becomes default path) 2. did not SET SRC=.... 3. source files not in current directory ------------------------------------------------------------------- 4. CTRL-ALT-DEL DOESN'T WORK ------------------------------------------------------------------- Problem: Ctrl-Alt-Del won't reboot on IBM Model 55SX, Dell, Northgate, DTK, AST and some other systems. Solution: The keyboard controller on these systems does not recognize the reboot command (send FE to port 64). To fix this, change s-ice.exe as follows: ren s-ice.exe s-ice.bin debug s-ice.bin -s cs:0 lffff b0 fe e6 64 (prints 2 addresses in xxxx:yyyy format) -e address1 90 90 90 90 bb 01 -e address2 90 90 90 90 bb 01 -w -q ren s-ice.bin s-ice.exe ------------------------------------------------------------------- 5. STRUCTURES NOT DISPLAYED ------------------------------------------------------------------- Problem: Soft-ICE does not display members of structures Solution: You must find the base of the structure, then calculate the offset of the member you wish to display, then dump that address. ------------------------------------------------------------------- 6. NETWORK TIMEOUT ------------------------------------------------------------------- Problem: Network disconnects when Soft-ICE is used. Solution: When the Soft-ICE screen is popped up, all interrupts are disabled. If it is left up too long, the server may disconnect your workstation from the network. You should exit Soft-ICE every 10 minutes to allow the network to access your computer. Alternatively, you may be able to increase the timeout. For Netware 3.x, you can control the timeout with SET statements from the console command line, or in AUTOEXEC.NCF. ------------------------------------------------------------------- 7. VCPI DOESN'T WORK ------------------------------------------------------------------- Problem: VCPI client programs like LOTUS, ORACLE, BORLAND IDE etc. don't work. Solution: VCPI programs require the /EMM switch with at least 500K. ------------------------------------------------------------------- 8. SOFT-ICE HANGS AFTER BEING ENTERED AND EXITED ------------------------------------------------------------------- Problem: On systems with a JET Keyboard Controller chip, the keyboard hangs after Soft-ICE is entered and exited. Solution: Patch Soft-ICE as follows: ren s-ice.exe s-ice.bin debug s-ice.bin -s 0 lffff b0 d0 e6 64 (prints address in xxxx:yyyy format) -e yyyy+1 ee (change d0 to ee) -e yyyy+3 60 (change 64 to 60) -w -q ren s-ice.bin s-ice.exe ------------------------------------------------------------------- 9. OUT OF SYMBOL SPACE ------------------------------------------------------------------- Problem: LDR prints "out of symbol space" Solution: This results when the LDR.EXE for version 2.0/2.1 is used when version 2.5 or higher of S-ICE.EXE is loaded. ------------------------------------------------------------------- 10. ALT-SYS-RQ HANGS ON EXIT ------------------------------------------------------------------- Problem: On some systems, when Alt-Sys-Rq key is assigned to pop up Soft-Ice, the system hangs upon exit. Solution: there is a timing problem in some systems because of the length of time it takes to complete the analysis of this key, and so the system gets stuck in the "Alt On" state. The user either must press the Alt key to release this state before exiting, or must assign a different key to pop up Soft-ICE. ------------------------------------------------------------------- 11. BPINT 2 BYTES OFF IN CODE ------------------------------------------------------------------- Problem: BPINT breakpoint displays code 2 bytes ahead of actual INT. Solution: "BREAK ON" is set in S-ICE.DAT. Delete it. ------------------------------------------------------------------- 12. ACTION NMI DOESN'T TRANSFER TO CV ------------------------------------------------------------------- Problem: ACTION NMI doesn't transfer control to CodeView Solution: BPX won't work with NMI, must use BPM-X. Also must set up CodeView to intercept NMI. ------------------------------------------------------------------- 13. BACK TRACE DOESN'T WORK ------------------------------------------------------------------- Problem: Back Trace operation doesn't work Solution: When Soft-ICE is run with Bounds-Checker, BC monopolizes the Paging hardware, so the BPR commands in Soft-ICE do not work. The "BOUNDS OFF" command does not help. The only solution is to run Soft-ICE separately. ------------------------------------------------------------------- 14. KEYBOARD LOCKS AFTER NUM-LOCK OR CAPS-LOCK ------------------------------------------------------------------- Problem: Keyboard locks up after keying NUM-LOCK or CAPS-LOCK Solution: Some early AMI BIOS ROM's have a timing problem in the keyboard controller. Boot the system and read the BIOS serial number: if it ends with KA,KB,KC,KD,KE or KF, this is one of the bad chips. Even though AMI has not made these chips since 1986, some computer manufacturers still have them in stock. The only solution is to replace the keyboard controller chip. AMI contact: Sam on 404-263-8181. ------------------------------------------------------------------- 15. LONG PATH TO .EXE FILE IS TRUNCATED ------------------------------------------------------------------- Problem: Using LDR with long path to .EXE file, can't find file, prints truncated path. Solution: Use the SUBST command to create a virtual drive for a long path. ------------------------------------------------------------------- 16. .COM FILE ------------------------------------------------------------------- Problem: .COM file will not load properly Solution: Delete the .EXE file if there is one. Note that because a .COM file does not contain debug info, you should run MSYM on the MAP file, LDR the program, and then do a SYMLOC CS to align. ------------------------------------------------------------------- 17. PRT-SC NOT WORKING ON OLD-STYLE KEYBOARD ------------------------------------------------------------------- Problem: Print Screen doesn't work with old (100) keyboard. Solution: change s-ice.exe as follows: ren s-ice.exe s-ice.bin debug s-ice.bin -s cs:0 lffff 80 fc 47 (prints address) -u address kkkk:nnnn CMP AH,47 . . . kkkk:mmmm TEST BYTE PTR [ZZZZ],20 . . . kkkk:nnnn CMP AL,2A kkkk:pppp JZ XXXX kkkk:qqqq CMP BYTE PTR [YYYY],00 kkkk:rrrr JZ WWWW Change last two lines to: kkkk:qqqq TEST BYTE PTR [ZZZZ],20 kkkk:rrrr JNZ WWWW Typically this is f6 06 19 0a 20 75 (ZZZZ = 0A19) -w -q ren s-ice.bin s-ice.exe ------------------------------------------------------------------- 18. "INT 10 DOES NOT POINT TO..." ------------------------------------------------------------------- Problem: displays message "INT 10 does not point to E000" Solution: This message is displayed when the Video card is a Hercules graphics adapter or some monochrome cards. Patch Soft-ICE as follows: ren s-ice.exe s-ice.bin debug s-ice.bin -r (get CS) -s cs+2000:0 lffff b8 00 e0 (prints address in xxxx:yyyy format) -e xxxx:yyyy+2 ff (change e0 to ff) -w -q ren s-ice.bin s-ice.exe ------------------------------------------------------------------- 19. VERTICAL LINES ON SCREEN ------------------------------------------------------------------- Problem: Vertical lines on the screen when running graphics programs. Solution: EMM Map is set up for backfilling; run EMMSETUP and restore A000 block to VVVV so video memory is not being accessed incorrectly. ------------------------------------------------------------------- 20. TAPE BACKUP DOESN'T WORK WHEN S-ICE INSTALLED ------------------------------------------------------------------- Problem: The tape backup fails. Solution: This is caused by the time that Soft-ICE takes up during an interrupt call. It can result from Soft-ICE being loaded into 16-bit memory. Try loading Soft-ICE into 32-bit extended memory and see if that works. Also, unload Soft-ICE thru "S-ICE /U" on the command line. Then do the tape backup and reload Soft-ICE thru "S-ICE". ------------------------------------------------------------------- 21. OLIVETTI LAPTOP KYBD LOCKS UP ------------------------------------------------------------------- Problem: Keyboard locks up on SCROLL LOCK, NUM LOCK or CAPS LOCK on an Olivetti laptop (M316) with Olivetti BIOS. Solution: Install Lantistic's KBFLOW program. This is public domain software. ------------------------------------------------------------------- 22. KEYBOARD 1 CHAR OFF ------------------------------------------------------------------- Problem: Keyboard is 1 character behind the actual keystrokes. Solution: This problem occurred when the program LAN MAN REDIRECTOR was installed. ------------------------------------------------------------------- 23. PROGRAM BLOWS UP WHEN LOADED WITH LDR ------------------------------------------------------------------- Problem: Program loads OK, but blows up when loaded with LDR. Solution: LDR changes the stack by 1 word. If the initialization code uses absolute offsets to read data from the stack, it will read the wrong locations. ------------------------------------------------------------------- 24. BPAND DOESN'T WORK ------------------------------------------------------------------- The BPAND command does not work for BPX type breakpoints. This includes F9 style point-and-shoot breakpoints. You must use a hardware type of breakpoint such as BPIO or BPM X. Also, the order in which the breakpoints are listed in the BPAND command is not significant; they do not have to occur in that specific order. The break will occur when all the breakpoints listed have occurred at least once. ------------------------------------------------------------------- 25. LOAD HI AREA IS NOT CLEARED ON WARM BOOT ------------------------------------------------------------------- Problem: On CTRL-ALT-DEL the programs loaded high remain in place, so no space is available to load high. Solution: Erase the first 16 bytes of the 1st load high area. The program ZERO.SYS should be loaded immediately after Soft-ICE in the CONFIG.SYS file to do this automatically upon rebooting. ------------------------------------------------------------------- 26. COMPAQ ProSignia 486 WITH EISA SCSI DRIVE (VIRTUAL DMA) ------------------------------------------------------------------- Problem: On bootup, displays a message that the current EMS memory manager does not support Virtual DMA. Solution: Load the driver SCSIC710.SYS in your CONFIG.SYS file.This driver is available on our BBS or from Compaq. The load syntax is as follows: DEVICE = [drive:][path]SCSIC710.SYS [/N] [/D] PARAMETERS: /N This parameter directs SCSIC710 not to display on-screen messages. /D This parameter forces SCSIC710 to always use double buffering. NOTE: When using this driver in conjunction with Compaq's EXTDISK.SYS, EXTDISK must be loaded first. ------------------------------------------------------------------- 27. USING SOFT-ICE WITH AN ADAPTEK SCSI DRIVE ------------------------------------------------------------------- When using Soft-ICE with an Adaptek SCSI drive, the SCSI driver ASPI4DOS.SYS must be loaded before S-ICE.EXE in the CONFIG.SYS. The user reporting this also had FUNNEL.SYS and UMB.SYS installed, and was able to load all his driver and T&SR's high. ------------------------------------------------------------------- 28. MIXED BC/SI SCREEN OR BPM ON STACK DOESN'T WORK ------------------------------------------------------------------- Problem: Mixed BC/SI screen, or BPM that doesn't catch a change on the stack. Solution: This can occur when a stack is outside the program space and Bounds-Checker is being run with Soft-ICE. If a CALL is made, a Page Fault occurs when the return address is written to the stack, and it overwrites the return address. Also, if there is a breakpoint on a PUSH instruction, before the Bounds-Checker screen is completely written, it is overwritten by the Soft-ICE screen. One way to identify this type of problem is that it won't happen if Soft-ICE is single-stepped. The only cure is to change to a stack within the program space. ------------------------------------------------------------------- 29. USING FOREIGN KEYBOARDS ------------------------------------------------------------------- Soft-ICE supports only the US keyboard: however, in some cases it is possible to patch it to allow using foreign keyboards. To simplify this process, we have written a program to replace the keycode table with a file containing another table, plus a document describing how to make such a keycode table file. It is on our BBS under the name KEYBOARD.ZIP, and on CompuServe under the name KEYBOA.ZIP. It includes a example for the German keyboard. ------------------------------------------------------------------- 30. DEBUGGING DOS-EXTENDED OR PROTECTED MODE PROGRAMS ------------------------------------------------------------------- Problem: Soft-ICE GPFs when trying to debug a DOS-EXTENDED program or a protected mode program. Solution: There is no workaround for this. Soft-ICE is a protected- mode program and cannot be run with other protected-mode programs. ------------------------------------------------------------------- 31. SOFT-ICE REBOOTS ------------------------------------------------------------------- Problem: System reboots when you install Soft-ICE. Solution: There are several reasons why Soft-ICE may reboot your system. They are: 1.) Failure to run EMMSETUP on S-ICE.EXE 2.) Having POWER.EXE in config.sys on low power systems 3.) Installing HIGHMEM.SYS before S-ICE.EXE in config.sys 4.) If reboot is occuring on a BPM (R) with Soft-ICE 2.60-2.62, see item #55 5.) If running on a PENTIUM with Soft-ICE ver 2.61 or less, see item #59 in this document. 6.) If running on a COMPAQ with Soft-ICE ver 2.61 or less, see item #60 in this document. 7.) It has been reported that some systems with CYREX cpu's reboot. There is no known fix for this problem. 8.) Many 486 systems will reboot if you attempt to run S-ICE.EXE from the DOS command line. The cause is unknown. There is currently no fix for this problem. 9.) On certain older COMPAQ models the following patch is needed to run with Soft-ICE 2.62 and greater: Patch Soft-ICE as follows ren s-ice.exe s-ice.bin debug s-ice.bin -s 0 lffff 'XOM' (prints out an address in xxxx:yyyy format. Offset should be 17B3) -e xxxx:(offset - 2) 30 33 43 -w -q ren s-ice.bin s-ice.exe ------------------------------------------------------------------- 32. INVALID OP-CODE REPORTED BY Soft-ICE ------------------------------------------------------------------- Problem: An INVALID OP-CODE is reported by Soft-ICE. Solution: The following things can cause INVALID OP-CODE ERRORS: 1.) Failure to run EMMSETUP on S-ICE.EXE before installing 2.) Running with SMARTDRIVE or another DISK CACHING program 3.) If Borland compiler, put /EMM 500 in S-ICE.EXE line of CONFIG.SYS. ------------------------------------------------------------------- 33. GP FAULT REPORTED BY Soft-ICE ------------------------------------------------------------------- Problem: A GP fault is reported by Soft-ICE. Solution: The following things can cause G.P. Faults: 1.) Failure to run EMMSETUP on S-ICE.EXE before installing 2.) Running with another Memory Manager (HIGHMEM.SYS is ok) 3.) Running with SMARTDRIVE or another DISK CACHING program 4.) Running Soft-ICE versions prior to 2.5 under DOS 6.x ------------------------------------------------------------------- 34. GP FAULT WHILE LOADING MSC 7/8 PROGRAM ------------------------------------------------------------------- Problem: A GP fault occurs while loading a MSC 7/8 (Visual C) program. The DI register is FFFF and the IP register is A99C. Solution: This occurs when a module compiled with debug data has no line number information. The code which processes line number information does not have a check for a count of zero, so it handles it as if the count were 64K. The following patch inserts a check for zero into the code. Patch LDR.EXE as follows: ren ldr.exe ldr.bin debug ldr.bin -s 0 lffff 0f 84 11 00 53 (displays address) -e address 74 11 53 26 8b 04 bb 06 00 f7 e3 8b d8 2e 8b 97 -e address+10 ce 09 5b 83 c6 04 83 c3 04 e3 1a -w -q ren ldr.bin ldr.exe ------------------------------------------------------------------- 35. BOUNDS-CHECKER "STACK" GIVES GP FAULT WHEN SOFT-ICE IS LOADED ------------------------------------------------------------------- Problem: A GP fault occurs from doing a STACK command in Bounds- Checker while Soft-ICE is loaded. The IP for the code displayed is 0000, and the ESI register has FFFF in the upper word. Solution: When Soft-ICE is loaded, Bounds-Checker minimizes its memory requirements by using some of the Soft-ICE routines. Some of these routines put an FFFF in the upper word of the EBX register when Bounds-Checker expects it to be 0000. EBX is later added to ESI, and when ESI is subsequently used as a pointer, the invalid address it contains causes a GP fault. This can be corrected by zeroing the upper word of EBX with a MOVZX EBX,BX instruction. Patch S-ICE.EXE as follows: ren s-ice.exe s-ice.bin debug s-ice.bin -s 0 lffff 66 03 f3 26 67 8b 06 (displays address) -e address 66 0f b7 db 66 03 f3 26 67 8b 06 80 f9 01 74 07 -e address+10 80 f9 02 74 1f -w -q ren s-ice.bin s-ice.exe ------------------------------------------------------------------- 36. USING WITH CODEVIEW 4.0 ------------------------------------------------------------------- CODEVIEW 4.0 that comes with Microsoft C-7 and C-8 is a protected mode program and cannot be run with Soft-ICE for DOS. ------------------------------------------------------------------- 37. RUNNING IN A DOS BOX ------------------------------------------------------------------- Soft-ICE for DOS cannot be used to debug an application that is running in a Windows DOS box. Use Soft-ICE for windows instead. ------------------------------------------------------------------- 38. TRYING TO DISPLAY FLOATING POINT NUMBERS ------------------------------------------------------------------- Floating point numbers cannot be displayed by Soft-ICE for DOS. ------------------------------------------------------------------- 39. RUNNING OUT OF MEMORY WITH BORLAND 4.0 IDE ------------------------------------------------------------------- If you are out of memory running with the Borland 4.0 IDE try increasing the value of the /EMM switch on the S-ICE.EXE line in CONFIG.SYS. ------------------------------------------------------------------- 40. HOT KEY FAILS TO POP UP Soft-ICE ------------------------------------------------------------------- Problem: Keying the hot key sequence fails to pop up Soft-ICE screen. Solution: Turn on the BREAK option from the Soft-ICE command line. This should prevent the keyboard from being disabled and allow you to pop up the SI window at any time. This option will make your program run somewhat slower. ------------------------------------------------------------------- 41. USING MEMORY ABOVE 16 MEG ------------------------------------------------------------------- You cannot use Soft-ICE for DOS with memory above 16 meg. Soft-ICE loads itself at the top of the first 16 meg and fools DOS into thinking that is all there is. ------------------------------------------------------------------- 42. "NO HIGH MEMORY AVAILABLE" MESSAGE ------------------------------------------------------------------- This usually means you have allocated to much memory with the /EMM, /EXT or the /SYM switches on the S-ICE.EXE line in CONFIG.SYS. ------------------------------------------------------------------- 43. "CAN'T FIND S-ICE.EXE" MESSAGE WHEN RUNNING UPDATESI.EXE ------------------------------------------------------------------- This occurs when you are trying to update Soft-ICE to a newer version using updatesi.exe. Check your path to current S-ICE.EXE. Make sure it is not on a DOS 6.x compressed volume. If it is the update program will not be able to find it. ------------------------------------------------------------------- 44. USING WITH OVERLAYED PROGRAMS ------------------------------------------------------------------- Soft-ICE works very well with older Microsoft overlay managers. It does not work with Microsoft MOVE or Borland VROOM. RTLink has caused many problems in the past that will be addressed in the 2.7 release of Soft-ICE. ------------------------------------------------------------------- 45. USING WITH SPAWNED PROGRAMS ------------------------------------------------------------------- Soft-ICE for DOS allows for the loading of two symbol tables. See the TABLE command in the Addendum to the manual for details. ------------------------------------------------------------------- 46. LOADING DOUBLESPACE HIGH ------------------------------------------------------------------- DOUBLESPACE cannot be loaded with with Nu-Mega's LD.SYS. You should use UMB.SYS with LOADHIGH commands. ------------------------------------------------------------------- 47. "Error Loading A Source File" ------------------------------------------------------------------- Problem: This message appears when loading a program with LDR Solution: The following are reasons for this message * Path to the source files is too long. Max 40 characters * File is somehow protected by DOS * File has been packed by something other than CV-PACK * File has been written on a UNIX style editor that puts only line feeds at the end of lines instead of carriage return - line feed ------------------------------------------------------------------ 48. FAULT WHILE TRYING TO DISPLAY A GLOBAL SYMBOL ------------------------------------------------------------------ Problem : Soft-ICE blows up when trying to display a global symbol Version 2.7 only Solution : Patch S-ice.exe as follows: ren s-ice.exe s-ice.bin debug s-ice.bin -r -s cs+1000:0 lffff 01 74 28 ( prints out an address in xxxx:yyyy format ) -e xxxx:yyyy 02 -w -q ren s-ice.bin s-ice.exe ----------------------------------------------------------------- 49. ALTSCR DOES NOT WORK IN VERSION 2.7 ----------------------------------------------------------------- Problem: ALTSCR command does not work in version 2.7 Solution: Patch S-ICE.EXE as follows: ren s-ice.exe s-ice.bin debug s-ice.bin -r -s cs+1000:0 lffff 80 3E 14 78 ( Prints out two addresses in xxxx:yyyy format ) -e xxxx:yyyy C7 06 C8 99 28 00 90 ( Use the first address printed ) -e xxxx:yyyy C7 06 C8 99 30 00 90 ( Use the second address printed ) -w -q ren s-ice.bin s-ice.exe ----------------------------------------------------------------- 50. GPF ON PUSH FD OR POP FD ( using back door command/BREAK ON ) _________________________________________________________________ Problem: A GPF occurs in SI on a PUSH FD or POP FD instruction. Solution: Patch S-ICE.EXE as follows ren s-ice.exe s-ice.bin debug s-ice.bin -s 0 lffff 0F 85 EA FA ( prints out an address in xxxx:yyyy fashion ) -e xxxx:yyyy 0F 85 09 FB -w -q ren s-ice.bin s-ice.exe ------------------------------------------------------------------- 51. LDR OF TSR CAUSES A BLOW UP THE NEXT TIME THE TSR IS RUN ------------------------------------------------------------------- Problem: This problem was shown when a guy loaded a TSR into Soft ICE, then did an EXIT, then ran the TSR again which caused a fault inside of Soft-ICE. It was narrowed down to the fact that Soft-ICE was using the ECX register but had never zeroed the high half. Solution: Patch S-ICE.EXE as follows: ren s-ice.exe s-ice.bin debug s-ice.bin -s 0 lffff 8A 0E 41 0D FE C1 B5 00 F3 ( prints out address in xxxx:yyyy format ) -e xxxx:yyyy 66 31 c9 8a 0e 41 0d 41 -w -q ren s-ice.bin s-ice.exe ------------------------------------------------------------------- 52. WINDOWS WON"T LOAD WHEN S-ICE IS PRESENT ------------------------------------------------------------------- Solution: Make sure BREAK is OFF inside Soft-ICE Put a /M:1 after HIMEM.SYS in CONFIG.SYS ------------------------------------------------------------------- 53. REGISTER WINDOW OVEWRITTEN WITH DS:XXXX IN LOWER RIGHT ------------------------------------------------------------------- Problem: The FLAGS in the register window are overwritten by a referenced memory address ( DS:XXXX= ). Solution: Patch S-ICE.EXE as follows: ren s-ice.exe s-ice.bin debug s-ice.bin -s cs+1000 lffff E8 91 FC ( prints out an address in xxxx:yyyy format ) -e xxxx:yyyy 90 90 90 -w -q ren s-ice.bin s-ice.exe ----------------------------------------------------------------- 54. SOFT-ICE DOES NOT POP UP PROPERLY WHEN RUNNING BRIEF ----------------------------------------------------------------- Problem: When running BRIEF ( editor is actually on screen ), CTRL-D causes the machine to beep and a reboot is needed. Solution: This is a problem that occurred since 2.7 and the addition of 43 and 50 line mode. An extra video page is being used and an equation in Soft-ICE was producing a negative result. Patch s-ice.exe as follows ren s-ice.exe s-ice.bin debug s-ice.bin -r -s cs+1000 lffff 66 2B CE F3 ( prints out an address in xxxx:yyyy format ) -e xxxx:yyyy 90 90 90 -s cs+1000 lffff 66 2B CF ( prints out an address in xxxx:yyyy format ) -e xxxx:yyyy 90 90 90 -w -q ren s-ice.bin s-ice.exe --------------------------------------------------------------- 55. USING SOFT-ICE WITH QL10DOS.SYS --------------------------------------------------------------- Problem: When SL10DOS.SYS is loaded, you get errors on disk accesses. QL10DOS.SYS is a new driver being shipped for SCSI hard disks. Solution: You must load drivers in CONFIG.SYS in the following order- device=s-ice.exe device=ql10dos.sys device=himem.sys device=funnel.sys ------------------------------------------------------------------- ******************************************************************* The following apply to Versions 2.62 and EARLIER ONLY !!!! ******************************************************************* ------------------------------------------------------------------- 56. FLOPPY HANGS WHEN SOFT-ICE INSTALLED (GP ERROR IN CACHE) ------------------------------------------------------------------- Problem: Floppy hangs when Soft-ICE is installed, on protected mode instruction in BIOS (F000:xxxx). Instruction is MOV EAX,CRx. Analysis: Some older Phoenix BIOS ROM's handled cache operations in protected mode. BIOS ROM must be replaced or you must update to Soft-ICE 2.6+, which emulates this instruction without generating a protection error. Some Gateway 2000 486's have this older BIOS. ------------------------------------------------------------------- 57. TURBO DEBUGGER IN 43-LINE MODE ------------------------------------------------------------------- Problem: Soft-ICE with Turbo Debugger in 43 line mode beeps and dies. Solution: patch s-ice.exe as follows: ren s-ice.exe s-ice.bin debug s-ice.bin -r (get value of CS register) -e (cs+1000h):b993 7f -w -q ren s-ice.bin s-ice.exe ------------------------------------------------------------------- 58. WRONG LINE #'S IN "STACK" COMMAND ------------------------------------------------------------------- Problem: Line numbers displayed by STACK command are wrong, typically very large (28xxx) Solution: patch s-ice.exe as follows: ren s-ice.exe s-ice.bin debug s-ice.bin -e cs:626f (should print "08.") 0a (change 08 to 0a) -w -q ren s-ice.bin s-ice.exe ------------------------------------------------------------------- 59. GP ERROR DISASSEMBLING OR STEPPING THRU CODE ------------------------------------------------------------------- Problem: General Protection Error when disassembling or stepping thru code. Solution: patch s-ice.exe as follows: ren s-ice.exe s-ice.bin debug s-ice.bin (Note: in newer versions search from CS+1000) -r -s cs:0 lffff 81 7c 01 4e 56 74 (prints address in xxxx:yyyy format; offset should be E3D8) -e xxxx:yyyy 90 90 90 90 90 90 90 90 90 90 90 90 90 (13 NOP's) -w -q ren s-ice.bin s-ice.exe ------------------------------------------------------------------- 60. "ENTER PATH..." FOR BORLAND C++ ------------------------------------------------------------------- Problem: Prints "enter path for" for all source files. Solution: Patch LDR.EXE as follows: ren ldr.exe ldr.bin debug ldr.exe -e 8cec 02. 03 (change 02 to 03) -w -q ren ldr.bin ldr.exe ------------------------------------------------------------------- 61. USING SOFT-ICE 2.60 & EARLIER WITH MSVC or BORLAND 3.1 ------------------------------------------------------------------- Problem: Can't load a MSVC or BORLAND 3.1 program into Soft-ICE Solution: To be compatible with MSVC or BORLAND 3.1, you must have version 2.62 or higher. ------------------------------------------------------------------- 62. USING SOFT-ICE 2.5x & EARLIER WITH MICROSOFT C/C++ 7.00 ------------------------------------------------------------------- Problem: With the C/C++ 7.00 compiler, Microsoft changed the format of the CodeView debug data. Solution: Soft-ICE cannot read the C/C++ debug data directly from the .EXE file. Use the MSYM method as follows: Link without the "/CO" switch but with the "/MA" and "/LI" switches. After linking, run our MSYM.EXE utility on the .MAP file to create a .SYM file which contains the debug data. If there is no debug data in the .EXE file, Soft-ICE will look for a .SYM file. You should use MSYM version 2.4 (dated 8/24/92) or later; it can be downloaded from this BBS. Earlier versions may work in some cases. NOTE: Microsoft's MAPSYM utility may create a .SYM file as part of the compilation process. This .SYM file does not contain all the debug data needed by Soft-ICE. You must use our MSYM. ------------------------------------------------------------------- 63. BPM BREAKPOINT REBOOTS (SOFT-ICE VERSION 2.60-2.62) ------------------------------------------------------------------- Problem: BPM breakpoint with R verb or with any conditional qualifier reboots the system when the breakpoint occurs (Soft-ICE Version 2.60 - 2.62). Solution: When a Soft-ICE source file was modified so that it also could be used for Soft-ICE/W, some code which handled hardware breakpoint re-entrancy was accidently deleted. During the handling of a BPM breakpoint, if the "R" verb was chosen or if there is a conditional qualifier, the contents of the breakpoint location are read. Reading this address causes another breakpoint to be generated, which re-enters the breakpoint handler and reads the location again, causing still another, and so on until the stack overwrites something and the system reboots. To fix this, patch S-ICE.EXE as follows: ren s-ice.exe s-ice.bin debug s-ice.bin -s 0 lffff f7 46 30 02 00 0f 85 00 00 (prints an address in xxxx:yyyy format) -e xxxx:yyyy 0f 21 f0 66 50 66 33 c0 0f 23 f0 66 58 a2 64 01 -e xxxx:yyyy+10 a9 00 40 0f 85 a0 00 f7 46 30 02 00 0f 84 92 ff -w -q ren s-ice.bin s-ice.exe ------------------------------------------------------------------- 64. BORLAND 4.0 PROGRAMS DO NOT LOAD INTO SOFT-ICE ------------------------------------------------------------------- Problem: Can't load source or symbols for Borland 4.0 problems Solution: Soft-ICE versions 2.62 and lower cannot handle Borland 4.0 symbols. The only solution is to upgrade. ------------------------------------------------------------------- 65. SNOW ON SCREEN WHEN USING WINDOWS (REAL MODE) ------------------------------------------------------------------- Problem: Snow on screen when using Soft-ICE with Windows 3.0 in real mode. Solution: Increase the Windows space by decreasing the /TRA and /SYM space used by Soft-ICE. ------------------------------------------------------------------- 66. LOADING IN OVER 16M MEMORY OR 16M MEMORY NOMINAL ------------------------------------------------------------------- Problem: Over 16M memory, keeps rebooting when trying to install Solution: patch s-ice.exe as follows: ren s-ice.exe s-ice.bin debug s-ice.bin -s 0 lffff b4 88 cd 15 (prints 2 addresses in xxxx:yyyy format) -e first-address b8 00 3b 90 -w -q ren s-ice.bin s-ice.exe ------------------------------------------------------------------- 67. COMPAQ REBOOTS WHEN TRYING TO LOAD SOFT-ICE ------------------------------------------------------------------- Problem: SL based/non-BIMM Compaq system reboots when s-ice.exe is installed. Solution: change s-ice.exe as follows (NOTE - the syntax "cs+2000" means add 2000 hex to the contents of the CS register and key in this number): ren s-ice.exe s-ice.bin debug s-ice.bin -s 0 lffff '03C' (prints an address in xxxx:yyyy format) -e address ff -r (get CS) -s cs+2000:0 lffff '03C' (prints an address in xxxx:yyyy format) -e address ff -w -q ren s-ice.bin s-ice.exe Also, if the keyword COMPAQ is in the S-ICE.DAT file, comment it out with a semicolon. NOTE: This problem has also occurred on other brands of computer which used a Compaq BIOS to control an IDE disk drive. ------------------------------------------------------------------- 68. USING SOFT-ICE ON A PENTIUM SYSTEM ------------------------------------------------------------------- The following changes must be made when using Soft-ICE on a Pentium system (NOTE - the syntax "cs+2000" means add 2000 Hex to the contents of the CS register and key in this number): ren s-ice.exe s-ice.bin debug s-ice.bin -r (get CS) -s cs+2000:0 lffff 2e 83 06 (prints an address in xxxx:yyyy format) -e address 64 -s cs+2000:0 lffff 2e c7 06 (prints two addresses in xxxx:yyyy format) -e first-address 64 -w -q ren s-ice.bin s-ice.exe ------------------------------------------------------------------- 69. LDR HANGS WHEN LOADING SYMBOLS ------------------------------------------------------------------- Problem: LDR.EXE hangs when loading symbols or the symbolic names are all junk characters. Solution: LDR stores the symbolic names in 5K blocks for parsing to extended memory. When a block is filled, there is no check for the end of the symbols, so if the last name exactly fills the last block, LDR continues processing and hangs. The following patch inserts a check for the symbol count = 0 at the end of a block. ren ldr.exe ldr.bin debug ldr.bin -s 0 lffff 0f 8f 05 00 (prints an address in xxxx:yyyy format) -e xxxx:yyyy 77 05 e2 e8 eb 1b 90 49 e3 17 -w -q ren ldr.bin ldr.exe ------------------------------------------------------------------- 70. BAD PRINTOUT OF SOURCE LINES IN BACK TRACE ------------------------------------------------------------------- Problem: Source lines sent to printer when printing back trace buffer are blank or all 0F characters. Solution: Source lines are routed through a routine which puts the actual character in AH, and puts 0F into AL The printer routine reads the contents of AL. To correct this, patch S-ICE.EXE to swap AL and AH when AL = 0F, as follows: NOTE: This patch begins at the address + 2, i.e., at the "ee" ren s-ice.exe s-ice.bin debug s-ice.bin -s 0 lffff 3d 4a ee (prints an address in xxxx:yyyy format) -e xxxx:yyyy+2 3c 0f 75 02 88 e0 ee b9 05 00 e2 fe 42 bb a0 00 -e xxxx:yyyy+12 ec 51 b9 05 00 e2 fe 59 a8 80 75 07 e2 f2 4b 74 -e xxxx:yyyy+22 1b eb ed b0 0d 42 ee b9 05 00 e2 fe -w -q ren s-ice.bin s-ice.exe ------------------------------------------------------------------- 71. BACK TRACE PRINTOUT HAS LONG BLOCKS OF SPACES ------------------------------------------------------------------- Problem: While printing the back trace buffer, long blocks of spaces are printed when a field overruns into the next field. Solution: Patch S-ICE.EXE as follows to print a single space if a negative or zero count results when calculating the number of spaces to get to a specific column: ren s-ice.exe s-ice.bin debug s-ice.bin -r (get contents of CS register) -s cs+1000:0 lffff d0 e4 d0 e4 d0 e4 d0 e4 (prints an address in xxxx:yyyy format) -e xxxx:yyyy c0 e4 04 0a c4 8a c8 b5 00 2a 0e e3 3f 7d 03 b9 -e xxxx:yyyy+10 01 00 -w -q ren s-ice.bin s-ice.exe