Message-ID: From: "Sisco, Michael" To: "'djgpp AT delorie DOT com'" Subject: Int 0x22??? (DJGPP and CWSDPMI) Date: Mon, 7 Oct 2002 13:26:51 -0500 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2656.59) Content-Type: text/plain; charset="iso-8859-1" Reply-To: djgpp AT delorie DOT com We are currently performing a "stress test" on the serial comm link used as part of our application. The test is very simple. We send a "poll" command to the piece of equipment with which we are communicating. The equipment responds with a "poll response" message. The incoming message generates a series of interrupts to tell us that there is data available in the UART. We read and display this data before sending out the next poll command. This all works very well for a while. After somewhere between 0 and 15 minutes, the program will crash with the following error (example): Int 0x22 at eip 31ee0; flags=1234 eax=00000030 ebx=00000000 ecx=0000000c edx=00000000 esi=0001a44a edi=00000000 ebp=00000000 esp=00002672 cs=18 ds=38 es=af fs=0 gs=0 ss=20 error=0000 I don't understand this error indication. Int 0x22 isn't really an interrupt vector at all. It simply specifies the return address to be used when an application terminates. I'm not certain how our application could have generated this interrupt. Also, the format of the error display leads me to believe that this report might be coming from CWSDPMI (see FAQ section 12.2). If we run this test several times, we get the same result, but at different eip values. I have traced all of these eip values and find them to be valid points within the test loop that we are running. The fact that the error is happening at different points in our loop leads me to believe that our problem has something to do with our interrupt handler, but I can't put my finger on it. Has anyone had any experience with such an error? What can cause an int 0x22? Thanks, Michael Michael D. Sisco Software Engineer QTI - Integration Team (414) 566-7894