commit (head): AbiWord UT_ASSERT breakage in spell_manager on i386 with gcc

From: Tomas Frydrych <tomasfrydrych_at_yahoo.co.uk>
Date: Fri Dec 31 2004 - 11:07:06 CET

Thanks Mark. There are in fact two separate int 3 instructions; one
which is represented by a single byte opcode (0xCC) and then a two byte
version (0xCD03); it is the former we want, which I am pretty sure is in
GAS, as you found out, 'int3'. I suspect the reason we have not caught
this so far is that both of these generate a breakpoint, but the former
has a number of special properties.

(Interestingly engough, the Intel docs note that both the Intel and MS
compilers will not generate the longer instruction irrespective of the
mnemonic.)

I have changed that now.

Happy new year to you, when it comes,

Tomas

Mark Gilbert wrote:
> http://www.abisource.com/bonsai/cvsview2.cgi?diff_mode=context&whitespace_mode=show&subdir=abi/src/af/util/xp&command=DIFF_FRAMESET&file=ut_assert.h&rev1=1.28&rev2=1.29&root=/cvsroot
>
> caused assembly errors in debug builds for spell_manager.o. The suffix
> to int (in `int 3') is invalid.
>
> According to exhaustive research by a dedicated team of experts making
> hundreds of dollars a minute, the correct code for the interrupt is
> "int3" , based on GAS' i386-opcode.h.
>
> I am currently unable to test whether at runtime this actually works for
> using the asserts in debugging, especially under other gnuc systems
> since apparently it worked for you in cygwin, so I won't commit
> anything, but I thought you might want to weigh in on the matter, since
> this new assert implementation is your baby.
>
> Regards
> -MG
>
>
>
Received on Fri Dec 31 11:07:24 2004

This archive was generated by hypermail 2.1.8 : Fri Dec 31 2004 - 11:07:24 CET