1863 lines
59 KiB
Plaintext
1863 lines
59 KiB
Plaintext
|
11-Jun-1996 a-MatH
|
||
|
Allowed the ee to work for multiple target machine types. Removed any
|
||
|
#ifdef TARGMACPPC &c and changed to if (TargetMachine == mtpmppc).
|
||
|
|
||
|
15-Jan-1996 BryanT
|
||
|
*.c *.h sources
|
||
|
Use .hxx versions of ee/sapi/cvtypes headers. Don't need ldouble.c.
|
||
|
|
||
|
10-Jan-1996 BryanT
|
||
|
*.c *.h
|
||
|
Make it compile/link as C++ code. This uncovered a number of problems
|
||
|
with functions w/o return values, incorrect enum usage, etc.
|
||
|
|
||
|
09-Jan-1996 BryanT
|
||
|
*.c *.h
|
||
|
Delete Win16/DOS support. Detab. Format to OSDEBUG standard.
|
||
|
Replace _fmemxxx with memxxx. Replace _ftcsxxx with _tcsxxx.
|
||
|
Remove PASCAL, FAR, NEAR, LOADDS, LOCAL.
|
||
|
Remove C_ONLY and ADDR_xxx usage (the EE is always C++ ADDR_MIXED).
|
||
|
|
||
|
08-Jan-1996 BryanT
|
||
|
*.asm *.inc *.lib
|
||
|
empty.c mat.c libmain.c
|
||
|
Delete Win16/DOS files.
|
||
|
|
||
|
sources makefile eecxx.def eecxx.rc
|
||
|
Add NT style build process.
|
||
|
|
||
|
07-Aug-1995 SanjayS
|
||
|
debfmt.c dllmain.c
|
||
|
Support automatic display of unicode strings/arrays.
|
||
|
03-Jul-1995 SanjayS
|
||
|
debtyper.c
|
||
|
Don't allow arithmetic on void pointers.
|
||
|
28-Jun-1995 Sanjays
|
||
|
debapi.c debsup.c debfmt.c debsym.c
|
||
|
Allow settings bps on bound virtual functions. We figure out the derived most class
|
||
|
and construct the name of the func preceded by is class scope i.e. CFoo::vfunc and
|
||
|
then try to set a bp on that.
|
||
|
27-Apr-1995 Sanjays
|
||
|
debeval.c
|
||
|
Fix virtual func ptr evals. We read the vtable ptr as a sym (4 byte value)
|
||
|
and need to take this value and work out the actual unfixed up address.
|
||
|
30-Mar-1995 Sanjays
|
||
|
debsup.c debfmt.c
|
||
|
Support multiple level auto-expand rules. Support -> in
|
||
|
autoexpand strings.
|
||
|
30-Mar-1995 v-LeoL
|
||
|
debsup.c
|
||
|
Special case __$ReturnUdt in SetFcniParm for pretty printing
|
||
|
function signature
|
||
|
|
||
|
21-Mar-1995 Sanjays
|
||
|
debsup.c
|
||
|
GetParmTM did not intialize pExState like is should.
|
||
|
|
||
|
22-Feb-1995 v-LeoL
|
||
|
debbind.c debeval.c shfunc.h
|
||
|
MIPS Function evaluation
|
||
|
debexpr.h debsym.c
|
||
|
Cleanup
|
||
|
eent.mak
|
||
|
Use msvcrtd for DEBUG build
|
||
|
|
||
|
10-Jan-1995 v-LeoL
|
||
|
debeval.c debbind.c
|
||
|
Support for $ReturnValue on MIPS
|
||
|
ldouble.h
|
||
|
Use pragma pack(push/pop)
|
||
|
|
||
|
06-Jan-1995 v-LeoL
|
||
|
debsym.c
|
||
|
Tune fValidInProlog to toss out only SP/S8 regrel symbols
|
||
|
debsrch.c
|
||
|
Olympus 3763 -- Fix to avoid Float10 use on MIPS
|
||
|
|
||
|
14-Dec-1994 v-LeoL
|
||
|
debsym.c
|
||
|
fValidInProlog assumes that offsets are FP relative --
|
||
|
MIPS are SP relative so return FALSE for all symbols.
|
||
|
[An optimization would be to pass in frame size and then
|
||
|
test offset >= framesize+16]
|
||
|
|
||
|
13-Dec-1994 v-LeoL
|
||
|
deblex.c
|
||
|
L"a" was getting lexed as IDENT STRING. moved Ident test
|
||
|
after string test and added L'a' support.
|
||
|
|
||
|
16-Nov-1994 SanjayS
|
||
|
debsym.c
|
||
|
Cull search at first hit for Auto expand in Multiple inheritance scenarios.
|
||
|
debwalk.c
|
||
|
Incorrect handling of MBCS filenames.
|
||
|
debutil.c
|
||
|
Fix Olympus:2864. Change check for type validity.
|
||
|
07-Nov-1994 SanjayS
|
||
|
debsup.c
|
||
|
Speed up GetMemberIA for the common case.
|
||
|
03-Nov-1994 SanjayS
|
||
|
debsup.c
|
||
|
debapi.c
|
||
|
debexpr.h
|
||
|
Added EEGetBCIA to support the this window in the IDE.
|
||
|
11-Oct-1994 RicoM
|
||
|
debsup.c
|
||
|
pCxt was not initialized while getting the ith child of
|
||
|
a class if the class reference variable. Olympus #1723
|
||
|
|
||
|
23-Sept-1994 RicoM
|
||
|
debutil.c
|
||
|
debfmt.c
|
||
|
Revisiting Dolphin Bug #14596. Now using the context from
|
||
|
the expression to find UDT symbols. We had been trying to
|
||
|
make a context from the HMOD but this turns out to be unsafe
|
||
|
see debutil.c
|
||
|
|
||
|
21-Sept-1994 RicoM
|
||
|
debbind.c
|
||
|
debexpr.h
|
||
|
debsym.c
|
||
|
Allow binding to labels inside of functions even if the
|
||
|
frame for that function has not been instantiated yet
|
||
|
(this regressed when we tryed to not let you bind to
|
||
|
arguments of functions that were not yet instantiated)
|
||
|
|
||
|
02-Sept-1994 GeorgioP
|
||
|
debbind.c
|
||
|
debexpr.h
|
||
|
debsym.c
|
||
|
Support display of function arguments while being in the prolog
|
||
|
of the function.
|
||
|
|
||
|
31-Aug-1994 RicoM
|
||
|
debbind.c
|
||
|
Minor fix to auto-expand to avoid re-freeing memory
|
||
|
|
||
|
31-Aug-1994 GeorgioP
|
||
|
debfmt.c
|
||
|
Low budget unicode display via the ",mu" and ",su" format specifiers
|
||
|
|
||
|
25-Aug-1994 GeorgioP
|
||
|
debapi.c
|
||
|
debbind.c
|
||
|
debeval.c
|
||
|
debexpr.h
|
||
|
debfmt.c
|
||
|
debparse.c
|
||
|
debsup.c
|
||
|
debsym.c
|
||
|
debsym.h
|
||
|
debutil.c
|
||
|
dllmain.c
|
||
|
Support auto-expansion of class members. Each TM that is a class or
|
||
|
a pointer to a class has now a list of auto-expanded child TMs that
|
||
|
are created and displayed based on expansion rules that reside
|
||
|
in the "AutoExpand" section of "msvc.ini". (E.g., a rule like
|
||
|
CPoint = x=<x>,y=<y> allows displaying points like
|
||
|
point = {x=1,y=2} instead of point = {...})
|
||
|
|
||
|
27-Jul-1994 GeorgioP
|
||
|
debbind.c
|
||
|
debeval.c
|
||
|
debexpr.h
|
||
|
deblex.c
|
||
|
debparse.c
|
||
|
debsrch.c
|
||
|
debsym.c
|
||
|
debutil.c
|
||
|
debwalk.c
|
||
|
expr2.z
|
||
|
Support the "$ReturnValue" keyword that binds to the return value
|
||
|
of the current function (assuming the current function is ready
|
||
|
to return). This feature enables the kernel (or even the user) to
|
||
|
access the return value of the current function. The kernel can
|
||
|
also get the return value of a function that has just returned, by
|
||
|
using an appropriate context.
|
||
|
Implementation (x86 only): A new operator, OP_retval, has been
|
||
|
added in order to handle "$ReturnValue" as a special identifier.
|
||
|
If the return value resides in a register, the OP_retval node
|
||
|
is marked as a register value. The reg field that used to be a
|
||
|
union member in the evaluation node is now a separate struct, so
|
||
|
that register-storage information do not overwrite type
|
||
|
information. Register-handling code has been extended to handle
|
||
|
registers having non-trivial types.
|
||
|
|
||
|
|
||
|
11-Jul-1994 RicoM
|
||
|
debutil.c
|
||
|
Bug #14596. Fixed SetDPtr so that it doesn't fault if it can't find
|
||
|
the type that it is looking for in the module that it's supposed
|
||
|
to be in. This now "masks" a more serious problem that
|
||
|
forward reference type need to be looked up using the context that
|
||
|
is in the evaluation node (when HMOD != NULL) instead of the global
|
||
|
context (which may be totally inappropriate for that node).
|
||
|
Also, a fake node and context should be created when formatting pointers
|
||
|
to functions instead of just faking the HMOD.
|
||
|
|
||
|
16-Jun-1994 Georgiop
|
||
|
debsrch.c
|
||
|
Apply this adjustment at the end of LoadAddress [Dolphin #13652]
|
||
|
(Code under #if THISADJUST, until the compiler bug gets fixed)
|
||
|
debexpr.h
|
||
|
debsup.c
|
||
|
Fixed counting of overloaded methods in GetClassiChild.
|
||
|
|
||
|
13-Jun-1994 Georgiop
|
||
|
debbind.c
|
||
|
debexpr.h
|
||
|
debsup.c
|
||
|
Addition to the previous change: since the cost of EEcChildrenTM
|
||
|
is now higher (due to potential presence of static members) and
|
||
|
since the kernel calls EEcChildrenTM quite often (via
|
||
|
LTIsExpandableTM), we now save the child count in the TM.
|
||
|
Also BindStMember now saves and restores pCxt
|
||
|
|
||
|
12-Jun-1994 Georgiop
|
||
|
debbind.c
|
||
|
debexpr.h
|
||
|
debsup.c
|
||
|
Do not display non-present static data members when expanding
|
||
|
a class TM. EEcChildrenTM and EEGetChildTM ignore static data
|
||
|
members that are not present.
|
||
|
In addition search state for GetClassiChild is saved in the TM
|
||
|
so that search for child (i+1) can continue from the point where
|
||
|
search for child i ended.
|
||
|
|
||
|
31-May-1994 v-LeoL
|
||
|
debsup.c
|
||
|
Avoid using pCxt in ResolveAddr. When called from EEInfoFromTM
|
||
|
this is undefined. Use pExState->cxt instead.
|
||
|
|
||
|
19-May-1994 Geogiop
|
||
|
debexpr.h
|
||
|
debsym.c
|
||
|
debwalk.c
|
||
|
The context list returned by EEGetCXTLFromTM contained a starting
|
||
|
context from which the corresponding symbol was visible, not the
|
||
|
exact context where the symbol was found. The kernel needs to know
|
||
|
the exact context for each symbol in order to set breakpoints
|
||
|
properly. I extended eval_t to accomodate full context information,
|
||
|
so that SearchSym can store the context where a symbol was found.
|
||
|
|
||
|
14-May-1994 Georgiop
|
||
|
debbind.c
|
||
|
debeval.c
|
||
|
debfmt.c
|
||
|
debsrch.c
|
||
|
debtyper.c
|
||
|
debutil.c
|
||
|
Provided support for T_(U)INT1 types (FORTRAN uses them)
|
||
|
[Dolphin #12021]
|
||
|
|
||
|
12-May-1994 Georgiop
|
||
|
debtyper.c
|
||
|
CastNode was not setting ADDR_IS_OFF32 properly, and PushUserValue
|
||
|
ended up pushing 2 bytes instead of 4 for function arguments that
|
||
|
were cast to ptrs. [Dolphin #12157]
|
||
|
|
||
|
06-May-1994 Georgiop
|
||
|
debexpr.h
|
||
|
debparse.c
|
||
|
debapi.c
|
||
|
debsup.c
|
||
|
Allow transformation of template names to a 'canonical' form only
|
||
|
when EEParse is called. In other cases (e.g., when ParseBind is
|
||
|
called) the expression should have been generated by the EE and
|
||
|
should be in canonical form already. This optimization makes the
|
||
|
EE more tolerant to debug info idiosyncracies as we avoid
|
||
|
transforming template names that have been generated by the
|
||
|
compiler (even if these are not really 'canonical' as far as the
|
||
|
EE is concerned). [Dolphin #11696]
|
||
|
|
||
|
04-May-1994 Georgiop
|
||
|
debbind.c
|
||
|
debeval.c
|
||
|
debexpr.h
|
||
|
debfmt.c
|
||
|
deblex.c
|
||
|
debparse.c
|
||
|
debsrch.c
|
||
|
debsym.c
|
||
|
debtyper.c
|
||
|
debutil.c
|
||
|
Enhanced support for __int64: common binary and unary opearations
|
||
|
can now accept int64 operands, and int64 string conversions have
|
||
|
been enabled. Floating point <-> int64 conversions are not supported
|
||
|
yet in order to avoid build problems due to potential unsupported
|
||
|
operations by the compiler. Code involving pointer segments and
|
||
|
offsets does not treat int64 in a special manner.
|
||
|
|
||
|
25-Apr-1994 v-LeoL
|
||
|
shfunc.h debsup.c
|
||
|
Support for locals inside nested procedures. C++EH Catch blocks
|
||
|
and SEH finally blocks and SEH filters are implemented via
|
||
|
nested procedures on MIPS
|
||
|
|
||
|
22-Apr-1994 Georgiop
|
||
|
debsym.c
|
||
|
AddVBType was not updating "*ppList" and "pList->MaxIndex"
|
||
|
following a reallocation of "*phList". This could eventually
|
||
|
cause a heap corruption and a GPF. [Dolphin #10293]
|
||
|
|
||
|
21-Apr-1994 Georgiop
|
||
|
debbind.c
|
||
|
Disabled overloaded operator functionality for "&". The EE uses the
|
||
|
non-overloaded "&" operator internally for constructing child
|
||
|
expressions. When rebinding nested child expressions the EE would
|
||
|
waste a lot of time looking for potential overloads of "&". As a
|
||
|
result the watch window would become extremely slugish and the
|
||
|
IDE would appear to be hung. [Dolphin #10293]
|
||
|
|
||
|
20-Apr-1994 Georgiop
|
||
|
debbind.c
|
||
|
BindSymbol prefers binding to a non-UDT symbol in case both a UDT and
|
||
|
a non-UDT have the same name and appear in the same scope. (Most of
|
||
|
the time, the user really wants the variable, not the type)
|
||
|
[Dolphin #10794]
|
||
|
|
||
|
18-Apr-1994 v-LeoL
|
||
|
debeval.c debbind.c
|
||
|
Change error for Mips func eval from ERR_CALLSEQ to
|
||
|
ERR_NOFUNCEVAL
|
||
|
|
||
|
15-Apr-1994 v-LeoL
|
||
|
debeval.c
|
||
|
Fix warning
|
||
|
debtyper.c
|
||
|
Another place to call ResolveAddr
|
||
|
|
||
|
15-Apr-1994 Georgiop
|
||
|
debeval.c
|
||
|
debexpr.h
|
||
|
debfmt.c
|
||
|
debsrch.c
|
||
|
debtyper.c
|
||
|
debutil.c
|
||
|
fmtstr.h
|
||
|
Provided minimal support for __int64, as the EE would hang or
|
||
|
misbehave while handling this type. Most operations on __int64
|
||
|
are not supported yet, but __int64 variables can be evaluated
|
||
|
and displayed in hex. [Dolphin 10611]
|
||
|
|
||
|
11-Apr-1994 Georgiop
|
||
|
debfmt.c
|
||
|
debutil.c
|
||
|
[Dolphin 10456]
|
||
|
|
||
|
FormatExpand now handles a SetNodeType failure that could set
|
||
|
the underlying type of an array to T_NOTYPE and cause a divide
|
||
|
by 0 exception.
|
||
|
|
||
|
SetNodeType resolves fwd references to underlying array types
|
||
|
while setting the node of an array type. This is done in order to
|
||
|
avoid having to resolve the type at a later time, when the
|
||
|
appropriate context for the symbol search may be unavailable.
|
||
|
|
||
|
|
||
|
07-Apr-1994 Georgiop
|
||
|
debtree.c
|
||
|
AddLeaf and AddNode were not checking for stack space in the
|
||
|
syntax tree before adding a new node. This could cause a memory
|
||
|
corruption and a GPF, since the the tree stack size is fixed
|
||
|
(although the rest of the tree may grow). [Dolphin #10293]
|
||
|
|
||
|
05-Apr-1994 v-LeoL
|
||
|
debbind.c debeval.c debtyper.c
|
||
|
Fix uninitialized local (Dolphin 7755) and enable some MAC/PPC
|
||
|
ifdefs for MIPS too.
|
||
|
|
||
|
04-Apr-1994 v-LeoL
|
||
|
debsym.c
|
||
|
If we find something in the publics don't save uninitialized
|
||
|
CXT [fix is MIPS only for now]
|
||
|
|
||
|
01-Apr-1994 Georgiop
|
||
|
debsup.c
|
||
|
Changed GetNameFromHSYM to skip the numeric leaf before accessing
|
||
|
the symbol name. The "value" field of CONSTSYM has fixed length
|
||
|
at compile time, and is followed by the "name" field. In fact
|
||
|
CONSTSYM is a numeric leaf that may have variable length, and
|
||
|
we ended up treating the last bytes of the numeric leaf as part
|
||
|
of the symbol name. [Dolphin #9323]
|
||
|
|
||
|
debtyper.c
|
||
|
CastNode now sets the ADDR_IS_FLAT flag. (EvalMem was emitting
|
||
|
a segmented address after calling CastNode.) [Dolphin #9941]
|
||
|
|
||
|
debfmt.c
|
||
|
Do not allow garbage following a format specifier; allow only
|
||
|
trailing white space. [Dolphin #9902, #9903]
|
||
|
|
||
|
debexpr.h
|
||
|
debbind.c
|
||
|
debutil.c
|
||
|
debeval.c
|
||
|
Added routine for checking if pointer subtraction is allowed, as
|
||
|
the existing check for type equality was too restrictive.
|
||
|
[Dolphin #8914]
|
||
|
|
||
|
|
||
|
01-Apr-1994 MarkBro
|
||
|
debfmt.c:
|
||
|
Changed size of buffer in EvalMem (bigger) and now handle
|
||
|
buffer (in) is smaller than local copy of buffer (DOLPHIN:9942)
|
||
|
|
||
|
31-Mar-1994 v-LeoL
|
||
|
debutil.c
|
||
|
Protect against unaligned numeric leafs
|
||
|
Also avoid Float10 when updating REAL32 and REAL64
|
||
|
|
||
|
30-Mar-1994 v-LeoL
|
||
|
debsup.c
|
||
|
Handle REGREL in InfoFromTM (use ResolveAddr to get BASE+off
|
||
|
rather than just off)
|
||
|
Also fix ResolveAddr to handle S8 correctly when at Top of Stack
|
||
|
OSDEBUG4 does not return correct adrBase when alloca frame is
|
||
|
topmost.
|
||
|
|
||
|
30-Mar-1994 Georgiop
|
||
|
debwalk.c:
|
||
|
OP_uscope now contains an eval_t node. BindBScope uses the eval_t
|
||
|
node of its left child (which can be a unary scope operator) to
|
||
|
set the CLASS_GLOBALTYPE flag. Since OP_uscope contained no eval_t
|
||
|
node this was resulting to a memory corruption. [Dolphin 9185]
|
||
|
|
||
|
debtree.c
|
||
|
GetExpr was not skipping over embedded hSym values properly and
|
||
|
returned garbage, preventing editing of child TMs in the locals
|
||
|
window. [Dolphin 9842]
|
||
|
|
||
|
25-Mar-1994 Georgiop
|
||
|
debsym.c
|
||
|
debeval.c
|
||
|
MatchArgs and EvalFunction were not handling fwd references to enum
|
||
|
types. [Dolphin 3659]
|
||
|
|
||
|
24-Mar-1994 Georgiop
|
||
|
debfmt.c
|
||
|
Fixed formatting of const/volatile type qualifiers. (A type like
|
||
|
"const Foo const *" was being displayed as "const const Foo *")
|
||
|
[dolphin 5043]
|
||
|
|
||
|
23-Mar-1994 v-LeoL
|
||
|
debeval.c
|
||
|
As the EE knows nothing about how to make a MIPSCALL function
|
||
|
call use ERR_CALLSEQ
|
||
|
|
||
|
16-Mar-1994 Georgiop
|
||
|
debexpr.h
|
||
|
debsym.c
|
||
|
debutil.c
|
||
|
Worked around the following bug:
|
||
|
While self debugging, bp at LTIsExpandableTM and watch
|
||
|
"{,,een0cxxd.dll}(pexstate_t*){*}phtm"
|
||
|
The resulting expression is not expandable, because
|
||
|
while in EEIsExpandable, we call SetNodeType and try to
|
||
|
resolve a forward reference by performing a symbol search
|
||
|
in the default context instead of {,,een0cxxd.dll}
|
||
|
|
||
|
Since we cannot always update pCxt before calling SetNodeType,
|
||
|
resolve potential forward references in undelrying types
|
||
|
when they are first introduced int the evaluation node.
|
||
|
|
||
|
04-Mar-1994 Georgiop
|
||
|
debbind.c
|
||
|
debeval.c
|
||
|
debexpr.h
|
||
|
Dolphin #5503: We GP-faulted while binding an expression like
|
||
|
Foo::m_array[Foo::m_staticCount], because we needed to fake
|
||
|
up a stack entry even if ST was not NULL.
|
||
|
Now we always push a faked entry unless there is a preceding
|
||
|
bnOp (".", "->", etc); in that case a class stack entry has
|
||
|
already been pushed onto the stack.
|
||
|
|
||
|
debsup.c
|
||
|
Dolphin #8336: When dereferencing a "reference to pointer" we
|
||
|
should dereference the underlying pointer (this is what
|
||
|
EEIsExpandable implies when it returns EEPOINTER)
|
||
|
|
||
|
debparse.c
|
||
|
pExState->strIndexSav should not be set by XFormExpr, since at that
|
||
|
time the actual parsing has not started and the value of strIndex is
|
||
|
unknown.
|
||
|
|
||
|
01-Mar-1994 v-LeoL
|
||
|
debsup.c
|
||
|
Dolphin #7908. Intel avoid printing 'this' param by checking
|
||
|
for negative offset. Centaur has 0 offset for this (or even positive)
|
||
|
so special case it.
|
||
|
|
||
|
debutil.c
|
||
|
Dolphin #7945
|
||
|
|
||
|
debeval.c
|
||
|
Dolphin #7945. OSDSaveRegister currently broken on MIPS so
|
||
|
avoid calling in EvalFunction if doing EvalProto
|
||
|
(EvalProto returns anyway without restoring)
|
||
|
|
||
|
24-Feb-1994 Georgiop
|
||
|
debexpr.h
|
||
|
CLEAR_EVAL_FLAGS was only clearing out part of the flags structure.
|
||
|
(the "bits" struct in vbits_t had grown beyond 32bits in size,
|
||
|
and the clr field was too small for clearing all bits.)
|
||
|
|
||
|
debbind.c
|
||
|
Restricted the symbol search to class names only, when binding the
|
||
|
left operand of "::". The EE would erroneously bind the class name
|
||
|
at the left of "::" to the corresponding constructor and rewrite
|
||
|
the expression by inserting the "this" pointer. (This in turn
|
||
|
prevented binding static members like Foo::m_static when the
|
||
|
"this" pointer was not in scope).
|
||
|
|
||
|
|
||
|
23-Feb-1994 Georgiop
|
||
|
debdef.h
|
||
|
deberr.c
|
||
|
debexpr.h
|
||
|
debfmt.c
|
||
|
eent.mak
|
||
|
eemc.mak
|
||
|
errors.h
|
||
|
resource.h (new file)
|
||
|
debmsb.rc (new file)
|
||
|
dllmain.c (new file)
|
||
|
Moved error messages to string resources so that they can be localized.
|
||
|
|
||
|
21-Feb-1994 RicoM
|
||
|
debsym.c
|
||
|
We no longer check the type index in the globals for and exact
|
||
|
match with the type index in the class for static data members.
|
||
|
This is because sometimes it doesn't match (e.g. unspecified
|
||
|
length arrays)
|
||
|
|
||
|
20-Feb-1994 Georgiop
|
||
|
debapi.c
|
||
|
debbind.c
|
||
|
deberr.c
|
||
|
debfmt.c
|
||
|
deblex.c
|
||
|
debparse.c
|
||
|
debsrch.c
|
||
|
debsup.c
|
||
|
debsym.c
|
||
|
debutil.c
|
||
|
debwalk.c
|
||
|
debexpr.h
|
||
|
Changes to use tchar.h - DBCS enabling
|
||
|
|
||
|
16-Feb-1994 RicoM
|
||
|
debsym.c
|
||
|
If nested type forward ref cannot be converted into a real type
|
||
|
then pretend we didn't find the symbol we were looking for in
|
||
|
the nested type and proceed with the search instead of returning
|
||
|
an OMF error and abandoning the search
|
||
|
|
||
|
15-Feb-1994 DaveS
|
||
|
errors.h
|
||
|
debeval.c
|
||
|
Fix function eval for mac68k. We still don't eval funcs, but
|
||
|
now we will eval BPs and prototypes. Also, I've added a new
|
||
|
error message for attempting function eval.
|
||
|
|
||
|
10-Feb-1994 Georgiop
|
||
|
debbind.c
|
||
|
debeval.c
|
||
|
Fixed expansion of function calls that return references to derived
|
||
|
classes. Such function calls are now treated as lvalues (as per the
|
||
|
C++ spec), and it is possible to bind child expressions (such as
|
||
|
base classes) that need the address of the referenced object.
|
||
|
|
||
|
02-Feb-1994 Georgiop
|
||
|
debexpr.h
|
||
|
deblex.c
|
||
|
debeval.c
|
||
|
Dolphin #5663: Work around for a compiler optimization bug: replaced
|
||
|
instaces of "(float)DoubleFromFloat10" with new inlined function
|
||
|
"FloatFromFloat10".
|
||
|
|
||
|
debutil.c
|
||
|
Dolphin #5783: RemoveIndir should clear the EVAL_IS_LABEL flag.
|
||
|
|
||
|
04-Feb-1994 Georgiop [by RicoM]
|
||
|
debeval.c
|
||
|
Dolphin 5530: Handle subtraction of void* pointers (fail gracefully).
|
||
|
Misc: Fixed bug in Store32 -- ADDR packet uninitialized
|
||
|
debsym.c
|
||
|
Dolphin 5465:
|
||
|
Fail symbol searches on member functions that are not
|
||
|
instantiated in the current .exe/.dll (i.e. if a class
|
||
|
imports member function you must be in the scope of the
|
||
|
function to set a breakpoint -- the kernel does this search
|
||
|
automatically)
|
||
|
|
||
|
29-Jan-1994 Georgiop
|
||
|
debapi.c
|
||
|
debeval.c
|
||
|
debexpr.h
|
||
|
debsup.c
|
||
|
debutil.c
|
||
|
expr2.z
|
||
|
Implemented evaluation caching mechanism: child TMs can now
|
||
|
be evaluated incrementally by reusing the evaluated result
|
||
|
of a parent TM.
|
||
|
|
||
|
27-Jan-1994 MarkBro
|
||
|
debfmt.c:
|
||
|
Restored _MBCS enabled code from previous whoops
|
||
|
|
||
|
debparse.c:
|
||
|
Change _MBCS #ifdef's to #ifNdef's _SBCS
|
||
|
|
||
|
26-Jan-1994 BillJoy
|
||
|
debsym.c
|
||
|
pulled MHOmfUnLock (hCFlag) inside the #if !defined(TARGMAC68K)
|
||
|
|
||
|
|
||
|
23-Jan-1994 RicoM
|
||
|
debutil.c
|
||
|
debsym.c
|
||
|
Fixed calls to GetUdtDefnTIndex() so that the type index
|
||
|
corresponds to the module that the type is being looked
|
||
|
up in. Fixes Dolf#5544
|
||
|
|
||
|
23-Jan-1994 RicoM
|
||
|
debapi.c
|
||
|
shfunc.h
|
||
|
Added stub implementation of EEInvalidateCache per GeorgioP
|
||
|
|
||
|
21-Jan-1994 MikeMo
|
||
|
makefile
|
||
|
Added -WX: no warnings allowed.
|
||
|
|
||
|
12-Jan-1994 Georgiop
|
||
|
debsup.c
|
||
|
debbind.c
|
||
|
Special handling of context operators when generating synthesized
|
||
|
expressions. Unified context handling scheme.
|
||
|
Minor bug fixes and misc. cleanup for can vs cxx builds.
|
||
|
debexpr.h
|
||
|
debsrch.c
|
||
|
debsup.c
|
||
|
debsym.c
|
||
|
debwalk.c
|
||
|
Misc. cleanup for can vs cxx builds.
|
||
|
|
||
|
22-Dec-1993 MikeMo
|
||
|
debsym.c
|
||
|
Dolphin #4678: realloc was the wrong size.
|
||
|
|
||
|
06-Dec-1993 Georgiop
|
||
|
debutil.c
|
||
|
SetNodeType was not restoring PTR_REG_IREG and PTR_REG_HIBYTE
|
||
|
of an enregistered pointer.
|
||
|
|
||
|
04-Dec-1993 Georgiop
|
||
|
debeval.c
|
||
|
debbind.c
|
||
|
Modified EvalFunction in order to fixe dolphin 1170: When a
|
||
|
simple variable is passed by ref we need to pass a pointer
|
||
|
to the variable (i.e., treat it in the same way we currently
|
||
|
treat passing classes by ref).
|
||
|
Modified Push?Args functions in debbind.c in order to restore
|
||
|
the PTR_UTYPE macros (when handling args that are passed by
|
||
|
ref) that had somehow disappeared.
|
||
|
|
||
|
debsym.c:
|
||
|
Updated comment header for SearchSym in an attempt to document
|
||
|
some of its side-effects. Didn't change any code.
|
||
|
|
||
|
debparse.c
|
||
|
Changed the condition on which a special path is taken when
|
||
|
parsing consecutive closing ')' of nested function calls in
|
||
|
order to fix dolphin #3404.
|
||
|
|
||
|
Changed FParseExpr to treat 'by', 'wo', 'dw' as identifiers if
|
||
|
they follow a '.' or a '->' (in that case they are probably
|
||
|
struct memebers, not commands). (dolphin #977)
|
||
|
|
||
|
debutil.c
|
||
|
debfmt.c
|
||
|
TypeDefSize and Format now use the f32bit flag ti decide on
|
||
|
whether a based pointer is 16-bit or 32-bit wide (there is
|
||
|
no distinction between these in codeview information).
|
||
|
(dolphin #979)
|
||
|
|
||
|
30-Nov-1993 MarkBro
|
||
|
debsym.c:
|
||
|
Corrected initialization of localeval in SearchRoot for
|
||
|
nested symbols. Was asserting since the previous initialization
|
||
|
of localeval of *pvF didn't have an associated module
|
||
|
|
||
|
05-Nov-1993 RicoM
|
||
|
debsup.c
|
||
|
Corrected off by one error allocating space for derived most
|
||
|
class cast
|
||
|
|
||
|
01-Nov-1993 RicoM
|
||
|
debsup.c
|
||
|
EECChildren now returns 1 for # children of a pointer to a
|
||
|
primitive type
|
||
|
|
||
|
26-Oct-1993 Stevesm
|
||
|
debapi.c
|
||
|
We had to initialize some of the global variables in
|
||
|
EEFormatCXTFromPCXT for NB10 restart with breakpoints. Resolving
|
||
|
forward reference UDTs caused us to invoke SearchSym. We needed to
|
||
|
initialize pCxt, pExState and various Eval Stack variables
|
||
|
|
||
|
30-Oct-1993 Georgiop
|
||
|
The EE was displaying bogus values for missing static class members.
|
||
|
Now if a static data member is missing the corresponding expression
|
||
|
binds properly and its evaluation or expansion is prevented. Affected
|
||
|
files:
|
||
|
debsym.c:
|
||
|
SearchQualName sets the HSYM of the eval node to 0 in order to
|
||
|
indicate a missing static data member. It also sets a global
|
||
|
flag in the TM to prevent expansion.
|
||
|
debeval.c:
|
||
|
StructEval returns an error in case an evaluation of a missing
|
||
|
static data member or function is attempted.
|
||
|
errors.h:
|
||
|
added ERR_STMEMBERNP ("static member not present") error
|
||
|
debexpr.h:
|
||
|
added fNotPresent flag in the state field of TMs
|
||
|
debapi.c:
|
||
|
EEIsExpandable: do not expand expressions that contain missing
|
||
|
static data members.
|
||
|
|
||
|
29-Oct-1993 Georgiop
|
||
|
debbind.c:
|
||
|
BindDot allows binding of expressions like {main,,}foo.bar where
|
||
|
foo is not yet in context and bar is a (non-virtual) member
|
||
|
function. This allows setting certain break points when restarting
|
||
|
a debugging session [dolphin #2433]. This fix addresses part of
|
||
|
a more general issue, i.e., what happens if part of an expression
|
||
|
cannot be bound, but the expression itself is bindable (i.e., does
|
||
|
not need all the information of the part that cannot be bound). In
|
||
|
general the EE does not allow binding of such expressions -- this
|
||
|
fix overrides this behavior.
|
||
|
|
||
|
20-Oct-1993 Georgiop
|
||
|
debexpr.h:
|
||
|
debeval.c:
|
||
|
debbind.c:
|
||
|
debapi.c:
|
||
|
Backed out the change made on 10-15-93 (fPreventEval flag). Now
|
||
|
EEDereferenceTM verifies that the downcast node is bindable. This
|
||
|
involves an extra call to EEGetChildTM, but results in better UI.
|
||
|
BindCast does not allow illegal casts that pertain to the class
|
||
|
hierarchy (e.g., casting a vitr. base ptr to a derived class ptr).
|
||
|
[dolphin #2751]
|
||
|
|
||
|
|
||
|
15-Oct-1993 Georgiop
|
||
|
debexpr.h:
|
||
|
debeval.c:
|
||
|
debbind.c:
|
||
|
Introduced fPreventEval in the TM state in order to prevent
|
||
|
evaluation of certain expressions. This is used together with
|
||
|
the auto class cast feature as follows: Neither DereferenceTM
|
||
|
or cChildrenTM check the validity of the cast required to build
|
||
|
the derived class node (it would be too costly to do so). If
|
||
|
BindCast discovers an illegal cast it lets the expression bind
|
||
|
properly (so that the kernel can query the expression name) but
|
||
|
prevents the evaluation of the node (which would produce meaningless
|
||
|
results)
|
||
|
|
||
|
|
||
|
15-Oct-1993 Georgiop
|
||
|
debeval.c:
|
||
|
Minor changes in VFuncAddr2 and StructEval in order to support
|
||
|
evaluation of virtual functino addresses. These should fix
|
||
|
dolphin bug #2223
|
||
|
|
||
|
14-Oct-1993 Georgiop
|
||
|
Dolphin bugs 299, 2312, 2223
|
||
|
debsup.c:
|
||
|
UpdateMem was not resetting properly the EVAL_IS_BPREL flag.
|
||
|
(dolphin 299)
|
||
|
debeval.c:
|
||
|
StructEval now produces an ERR_NOTEVALUATABLE instead of
|
||
|
ERR_INTERNAL if VFuncAddress2 fails. VFuncAddress2 may fail if the
|
||
|
object does not have a valid vfptr -- dolphin 2223.
|
||
|
(The problem of computing the right address of a virtual
|
||
|
function still exists)
|
||
|
EvalAddrOf() was not handling references properly. RemoveIndir()
|
||
|
was not handling CV_PTR_NEAR32 types.
|
||
|
|
||
|
13-Oct-1993 Georgiop
|
||
|
debfmt.c:
|
||
|
FormatCXT has been changed to append an argument type list
|
||
|
to function names in context strings, so that the kernel can
|
||
|
disambiguate overloaded functions.
|
||
|
debbind.c:
|
||
|
ContextToken() now accepts tokens that contain a parenthesized
|
||
|
substring. This allows parsing of contexts generated by
|
||
|
FormatCXT. The parenthesized part is ignored, since BindContext
|
||
|
cannot deal with overloaded functions
|
||
|
debbind.c:
|
||
|
Bug fix in BindContext: Typing "{foo,,}bar" in the watch window
|
||
|
before starting a debugging session would cause an assertion
|
||
|
in sapi, as BindContext was attempting to call SHGetNextMod
|
||
|
passing a NULL hExe. This call has been removed.
|
||
|
|
||
|
12-Oct-1993 Georgiop
|
||
|
Bug fix for Dolphin #2109: attempt to cast a register to a UDT
|
||
|
during evaluation of an assignment failed due to the NULL hmod
|
||
|
in the evaluation node of the register.
|
||
|
debeval.c:
|
||
|
Check if ST has a null hmod before calling CastNode() in
|
||
|
Assign().In that case use the hmod found in STP
|
||
|
|
||
|
08-Oct-1993 Georgiop
|
||
|
Further enhancements to auto class casting: nested class support,
|
||
|
pointer adjustment when casting from "pointer to base" to
|
||
|
"pointer to derived"
|
||
|
debapi.c:
|
||
|
debexpr.h:
|
||
|
shfunc.h:
|
||
|
New API EEEnableAutoClassCast
|
||
|
debparse.c:
|
||
|
debbind.c:
|
||
|
Modified ParseTypeName and ParseType to allow contexts in
|
||
|
type strings. Added CastBaseToDeriv().
|
||
|
debsup.c:
|
||
|
GetDerivClassName generates a context together with the
|
||
|
type name. Minor changes in the way the magic node is
|
||
|
formatted
|
||
|
|
||
|
05-Oct-1993 RicoM
|
||
|
Minor bug fixes
|
||
|
debsup.c
|
||
|
debapi.c
|
||
|
Skip LF_MODIFIER nodes during auto class cast so that
|
||
|
auto class cast works even on const or volatile pointers
|
||
|
Don't ever use BIND_fSupBase as it prevents expansion
|
||
|
of members found in base classes in
|
||
|
|
||
|
01-Oct-1993 Georgiop
|
||
|
Implemented automatic detection of the type of a class
|
||
|
object pointed by a ptr, in case the ptr points to an
|
||
|
enclosed base class object which has a vtable.
|
||
|
debexpr.h:
|
||
|
Added hDClassName in pexstate_t to hold the
|
||
|
derived class name.
|
||
|
debsup.c
|
||
|
Added GetDerivClassName, modified DereverenceTM to
|
||
|
set hDClassName, and cChildren, GettChildTM to
|
||
|
use hDClassName.
|
||
|
debapi.h
|
||
|
Minor changes due to hDClassName addition in the TM
|
||
|
|
||
|
29-Sep-1993 SanjayS
|
||
|
debeval.c
|
||
|
Don't force operand of ++ and -- to be treated as an lvalue in
|
||
|
EvalPostIncDec and EvalPreIncDec.
|
||
|
|
||
|
28-Sep-1993 SanjayS
|
||
|
debbind.c
|
||
|
Free the correct memory handles in BinaryOperator, even if a
|
||
|
realloc happens.
|
||
|
|
||
|
27-Sep-1993 MarkBro
|
||
|
debfmt.c:
|
||
|
Added fix for ensuring that the types table checked for a type
|
||
|
matches the hmod of the symbol.
|
||
|
|
||
|
24-Sep-1993 Georgiop
|
||
|
debfmt.c
|
||
|
Use the mod for the type we back from SHModFromCxt when
|
||
|
formatting a pointer to function value.
|
||
|
24-Sep-1993 Georgiop
|
||
|
debfmt.c
|
||
|
Dolphin #1389: Changed Format() to set the proper hmod in the
|
||
|
evaluation node.
|
||
|
|
||
|
25-Aug-1993 Georgiop
|
||
|
debapi.c
|
||
|
dogfood.mak
|
||
|
eent.mak
|
||
|
makefile.mak
|
||
|
Replaced LANG and LANGID macros with EELANG and EELANGID respectively
|
||
|
|
||
|
20-Aug-1992 SanjayS
|
||
|
debsup.c
|
||
|
debwalk.c
|
||
|
debexpr.h
|
||
|
Checked in changes made by Georgiop to fix problem where any TM
|
||
|
created using EEGetTMFromHSYM would return a bogus string when
|
||
|
|
||
|
EEGetExprFromTM was called on it. See log made by Georgios below...
|
||
|
N.B. Georgios was in Greece so his changes.txt was checked in later...
|
||
|
|
||
|
19-Aug-1993 Georgiop
|
||
|
debsup.c
|
||
|
debwalk.c
|
||
|
debexpr.h
|
||
|
Changed GetExpr to replace HSYMs found in the expression string
|
||
|
with the corresponding symbol names.
|
||
|
dogfood.mak
|
||
|
Added /MD /W3 to the compiler command line
|
||
|
|
||
|
12-Aug-1993 MikeMo
|
||
|
debtyper.c
|
||
|
Fix a bug I introduced way back in February: when casting int to
|
||
|
FOO*, where FOO* is not a primitive type, CastNode() was treating
|
||
|
FOO* as a primitive type (e.g. doing CV_MODE on it and stuff).
|
||
|
|
||
|
10-Aug-1993 MikeMo
|
||
|
debbind.c
|
||
|
debparse.c
|
||
|
debsup.c
|
||
|
debsym.c
|
||
|
Fix bugs in the use of MHMemReAlloc. Some calls were assuming that
|
||
|
the handle value could change, and others were assuming that it
|
||
|
could not. The former is correct: the handle value CAN change.
|
||
|
|
||
|
09-Aug-1993 GeorgioP
|
||
|
debutil.c
|
||
|
Modified erroneous (but harmless) code in GetUdtDefnTindex
|
||
|
that generated compiler warning.
|
||
|
|
||
|
09-Aug-1993 GeorgioP
|
||
|
Implemented "quick binding" for child TM's that represent member functions.
|
||
|
Bind info are stored in the TM during the child TM creation and the bind
|
||
|
phase is bypassed. Currently such TMs are not evaluatable. Affected files:
|
||
|
debapi.c:
|
||
|
Modified GetChildTM, added GetParmTM
|
||
|
debeval.c:
|
||
|
DoEval now fails gracefully if the TM has no eval stack.
|
||
|
debexpr.h:
|
||
|
Modified/added prototypes for GetChildTM, GetParmTM, ParseBind
|
||
|
debsup.c:
|
||
|
Modified GetChildTM, replaced SetClassiName with GetClassiChild
|
||
|
|
||
|
15-Jul-1993 GeorgioP
|
||
|
debbind.c
|
||
|
debeval.c
|
||
|
debfmt.c
|
||
|
debtyper.c
|
||
|
debutil.c
|
||
|
Fixes to avoid some compiler warnings
|
||
|
|
||
|
15-Jul-1993 GeorgioP
|
||
|
debbind.c:
|
||
|
One-line fix (Replaced '==' with '!=' on line 3023): AddrOf
|
||
|
should not set EVAL_STATE(ST) to rvalue in case ST is a type
|
||
|
(dolphin #1169)
|
||
|
|
||
|
15-Jul-1993 GeorgioP
|
||
|
debparse.c:
|
||
|
Added XFormExpr and GetToken for template support.
|
||
|
debbind.c:
|
||
|
GetId looks for matching <>'s in order to treat template class
|
||
|
names as identifiers.
|
||
|
debexpr.h:
|
||
|
Added hExStrSav, strIndexSav, ExLenSav in exstate_t. These hold
|
||
|
info about the original string in case it has been modified by
|
||
|
XFormExpr.
|
||
|
debwalk.c:
|
||
|
GetExpr now uses the saved string if it exists.
|
||
|
debsup.c:
|
||
|
DupTM duplicates the saved string
|
||
|
debapi.c:
|
||
|
EEFreeTM frees the saved string
|
||
|
|
||
|
07-Jul-1993 DanS
|
||
|
debfmt.c
|
||
|
cuda:5647, display T_NOTYPE and default cases with 4 bytes
|
||
|
for 32-bit addresses, 2 bytes for 16-bit.
|
||
|
|
||
|
02-Jul-1993 MikeMo
|
||
|
debapi.c
|
||
|
cuda#5595: EEGetTMFromHSYM now returns EENOMEMORY instead of
|
||
|
EECATASTROPHIC if a memory allocation fails. This allows the
|
||
|
callstack to come up with an empty stack instead of crashing.
|
||
|
|
||
|
01-Jul-1993 DanS
|
||
|
debfmt.c
|
||
|
debbind.c
|
||
|
cuda:5546, transfer all addr bits from ptr to sym in ref case.
|
||
|
initialize type in AddrOf case for &(int &bar) case.
|
||
|
|
||
|
29-Jun-1993 DanS
|
||
|
debutil.c
|
||
|
cuda:5515, if type packing leaves dupes, we can end up with
|
||
|
sym recs to have type indices that don't point into the correct
|
||
|
type index "tree". the trick is to find a fix that won't break
|
||
|
searching for ambiguous methods. what we settled on was in fnCmp
|
||
|
to a) if name matched exactly (case sensitive), b) the type that
|
||
|
we were carrying around for the method was not the same as the one
|
||
|
on the symbol record, then c) we would say they are equivalent if
|
||
|
there were no overloads (overloadCount == 1).
|
||
|
|
||
|
22-Jun-1993 DanS
|
||
|
debsym.c
|
||
|
cuda:5345, don't let registers/line #'s be evaluated in an
|
||
|
explicit class/struct scope.
|
||
|
|
||
|
\-------------------End Conflict-------------------/
|
||
|
16-Jun-1993 DanS
|
||
|
debbind.c
|
||
|
cuda:5171 (and more!) propagate an explicit context from the
|
||
|
left bind tree to the right during BindDot and BindPointsTo.
|
||
|
this handles the case where we have {,,foo.dll}fooStruct and
|
||
|
we want to expand it. trouble is that the expansion results
|
||
|
in an expr like this: ({,,foo.dll}fooStruct).fooMember. the
|
||
|
context is bound to the right side and not applied to the
|
||
|
right hand side for the type lookups.
|
||
|
|
||
|
an alternative fix would be to always carry a context around
|
||
|
on every symbol node or to elevate the context precedence so
|
||
|
that we end up with {,,foo.dll}(fooStruct).fooMember instead.
|
||
|
|
||
|
14-Jun-1993 DanS
|
||
|
debbind.c
|
||
|
debeval.c
|
||
|
cuda:5124, vtshape tables not dumped correctly.
|
||
|
debeval.c wasn't passing on all of the address from ptr to sym
|
||
|
in VFuncAddress.
|
||
|
debbind.c had some unused code removed.
|
||
|
|
||
|
28-May-1993 DanS
|
||
|
debsym.c
|
||
|
cuda:4886, add case S_LTHREAD32 to SymToNode so that we can
|
||
|
look at static (local and module) TLS variables.
|
||
|
|
||
|
25-May-1993 DanS
|
||
|
debsrch.c
|
||
|
cuda:4798, use all 4 bytes of 32-bit regs when loading symval
|
||
|
debutil.c
|
||
|
cuda:4799, xfer all data pertaining to register values from pv
|
||
|
to nv in SetNodeType for any case that is a register.
|
||
|
|
||
|
25-May-1993 MikeMo
|
||
|
debfmt.c
|
||
|
cuda#4793: EVAL_IS_NPTR32 and EVAL_IS_FPTR32 return FALSE for
|
||
|
arrays, which was causing trouble for code which assumed they
|
||
|
would return TRUE for arrays as well as pointers.
|
||
|
|
||
|
06-May-1993 RicoM
|
||
|
debsym.c
|
||
|
CUDA #4305: SetValue() now also avoids referencing "this" when
|
||
|
accessing a BASE class name that was found in the context of
|
||
|
a member function. It used to turn FOO::bar into this->FOO::bar
|
||
|
if you were in a member function of a class derived from FOO.
|
||
|
|
||
|
06-May-1993 RicoM
|
||
|
debsym.c
|
||
|
CUDA #4030: SetValue() now avoids referencing "this" when accessing
|
||
|
static data members from a class that was implicitly in scope.
|
||
|
This lets us refer to a static data member from within a static
|
||
|
member function without having to qualify with the class name.
|
||
|
The old way we'd be told that we could find "this" even though
|
||
|
we didn't really need it.
|
||
|
|
||
|
05-May-1993 RicoM
|
||
|
debutil.c
|
||
|
CUDA #4067: SetNodeType() needs to preserve the EVAL_IS_LABEL
|
||
|
bit or else labels get treated as data and can't be fixed up
|
||
|
correctly
|
||
|
|
||
|
04-May-1993 DanS
|
||
|
ldouble.c
|
||
|
ldouble.h
|
||
|
debfmt.c
|
||
|
deblex.c
|
||
|
eent.mak
|
||
|
cuda:2119, low budget float10 support using CRT internals.
|
||
|
|
||
|
debfmt.c
|
||
|
deblex.c
|
||
|
debeval.c
|
||
|
debsrch.c
|
||
|
debsup.c
|
||
|
debsym.c
|
||
|
debtyper.c
|
||
|
debutil.c
|
||
|
debwalk.c
|
||
|
change near to NEAR all over the place because new compiler removed
|
||
|
near do nothing keyword
|
||
|
|
||
|
03-May-1993 RicoM
|
||
|
debfmt.c
|
||
|
CUDA #4028: FormatLong() renamed to ExtendToLong() which more
|
||
|
accurately reflects what it does. Bug #4028 says that
|
||
|
(unsigned char)255,d formats as '-1'. The problem here is
|
||
|
that in the ,d case ExtendToLong() always did a sign-extend even
|
||
|
when converting from an unsigned type. There is now a check
|
||
|
to see if we are converting from a unsigned type, or if we need
|
||
|
an unsigned result. In either of these two cases no-sign extension
|
||
|
is performed.
|
||
|
|
||
|
30-Apr-1993 RicoM
|
||
|
debeval.c
|
||
|
CUDA #4044: VerifyFormat needed to check the return code of
|
||
|
its CastNode() calls to prevent trying to format a float as
|
||
|
memory for instance (i.e. float f; ?f,m)
|
||
|
|
||
|
30-Apr-1993 RicoM
|
||
|
debeval.c
|
||
|
CUDA #4020: EvalFunction stack handling changed so that
|
||
|
any temporary objects that were pushed on the stack (e.g.
|
||
|
string literals are not removed until the whole expression
|
||
|
has been evaluated. This handles nested/multiple functions
|
||
|
|
||
|
29-Apr-1993 RicoM
|
||
|
debsrch.c
|
||
|
CUDA #2962: LoadAddress wasn't always using pExState->frame.DS
|
||
|
for the segment value (sometimes it used just 0)
|
||
|
|
||
|
29-Apr-1993 MikeMo
|
||
|
debfmt.c
|
||
|
cuda#4043: The IDE displays chars with null value as '\x00',
|
||
|
but CV displays them as ''.
|
||
|
|
||
|
29-Apr-1993 RicoM
|
||
|
debeval.c
|
||
|
EvalFunction and VFuncAddress2 both preserve the EMI and MODE
|
||
|
parts of the address when they copy the results of EvalUtil()
|
||
|
into the address part of the expression. This allows us to
|
||
|
correctly fixup/unfixup vtable addresses... EvalFunction
|
||
|
was also modified to correctly compute the logical address
|
||
|
of a near virtual function without consulting CS (which doesn't
|
||
|
work anyway) CUDA #3949 is now completely fixed
|
||
|
|
||
|
28-Apr-1993 RicoM
|
||
|
debeval.c
|
||
|
EvalFunction doesn't try to restore the registers if it fails
|
||
|
before they've been saved anymore... This makes CUDA #3949
|
||
|
not fault anymore, but we still can't call the function...
|
||
|
|
||
|
27-Apr-1993 MikeMo
|
||
|
debsup.c
|
||
|
Revision of the change mentioned below on 21-Apr: this change
|
||
|
is in Cuda after all. EEInfoFromTM won't automatically
|
||
|
dereference pointers.
|
||
|
|
||
|
26-Apr-1993 RicoM
|
||
|
debbind.c
|
||
|
debeval.c
|
||
|
CUDA #3743, use 32 bit types in bind/eval of 'by', 'wo', and 'dw' ops
|
||
|
|
||
|
23-Apr-1993 RicoM
|
||
|
debeval.c
|
||
|
Push function addresses on the stack in EvalFunction in the prototype
|
||
|
case. CUDA #3673
|
||
|
|
||
|
21-Apr-1993 MikeMo
|
||
|
debsup.c
|
||
|
Under Dolphin, EEInfoFromTM won't automatically dereference
|
||
|
pointers.
|
||
|
|
||
|
09-Apr-1993 SanjayS
|
||
|
deblex.c
|
||
|
Added additional overflow check in ParseIntConst.
|
||
|
|
||
|
08-Apr-1993 SanjayS
|
||
|
debeval.c
|
||
|
debbind.c
|
||
|
EvalSegOp and BindSegOp were disallowing T_INT4's. Fixed this
|
||
|
as integral constants are always typed INT in 32-bits. Added
|
||
|
check in EvalSegOp to make sure that the value of the segment
|
||
|
portion is in range.
|
||
|
|
||
|
08-Apr-1993 MikeMo
|
||
|
debexpr.h
|
||
|
debbind.c
|
||
|
debeval.c
|
||
|
debfmt.c
|
||
|
deblex.c
|
||
|
debparse.c
|
||
|
debsrch.c
|
||
|
debtyper.c
|
||
|
* exstate_t.state now contains an 'f32bit' flag, which indicates
|
||
|
whether this expression has 32-bit ints and pointer offsets. This
|
||
|
should usually be used instead of the 'fWin32' global (now removed)
|
||
|
or the 'CVTargetInfo' function.
|
||
|
|
||
|
* Various expressions that used to return type T_SHORT or T_USHORT for
|
||
|
C boolean operations like "a != b" and "!x", have been changed to
|
||
|
return T_INT2 or T_INT4 as appropriate.
|
||
|
|
||
|
* T_RCHAR is now treated as a signed char as it should, rather than
|
||
|
unsigned. (There is still one case we don't handle correctly, which
|
||
|
is too hard to fix: if someone compiles a C++ program with -J, we'll
|
||
|
still be treating chars as signed. But this is a rare case.)
|
||
|
|
||
|
* In hex display, chars are always displayed with two hex bytes even
|
||
|
if variable's value is negative; shorts always with four hex bytes.
|
||
|
|
||
|
* Fixed value display of things like "sc,d" and "sc,u" where sc is a
|
||
|
signed char.
|
||
|
|
||
|
* When lexing a constant for 32-bit, return T_LONG or T_ULONG if user
|
||
|
explicitly appended 'u' and/or 'l'.
|
||
|
|
||
|
* Fixed rules for "integral promotion."
|
||
|
|
||
|
* Fixed rules for the "usual arithmetic conversions."
|
||
|
|
||
|
06-Apr-1993 MikeMo
|
||
|
debtyper.c
|
||
|
Cuda#2616: "eip == label" did not work, because the code was
|
||
|
attempting to cast the label from a 32-bit address to a 16-bit
|
||
|
address.
|
||
|
|
||
|
30-Mar-1993 Brucejo
|
||
|
debutil.c
|
||
|
debsup.c
|
||
|
Fix 16 <--> 32 bit ptr casting problem. This caused the array
|
||
|
expansion to fail. The macro N_EVAL_PTRTYPE was checking more
|
||
|
than just the type, the tests were changed to check just the type.
|
||
|
Also, examine return from SetNodeType and assert on false for the
|
||
|
array element counting. This should help catch this kind of bug
|
||
|
easier.
|
||
|
|
||
|
04-Mar-1993 MikeMo
|
||
|
fmtstr.h
|
||
|
debfmt.c
|
||
|
Clean up code which maps a primitive type to a string. In
|
||
|
the process, fix cuda#2558 (vars of type "int *" not displaying
|
||
|
their type correctly).
|
||
|
|
||
|
29-Feb-1993 DavidGra
|
||
|
debsup.c
|
||
|
debsym.c
|
||
|
debutil.c
|
||
|
Added S_[L|G]Thread cases where appropriate in order to support
|
||
|
thread local storage.
|
||
|
|
||
|
|
||
|
08-Feb-1993 MikeMo
|
||
|
debbind.c
|
||
|
debeval.c
|
||
|
debfmt.c
|
||
|
debtyper.c
|
||
|
debutil.c
|
||
|
fmtstr.h
|
||
|
Fixes for 32-bit pointers. Main fix was in CastNode() in
|
||
|
debtyper.c: we now correctly cast between 32-bit pointers to
|
||
|
different types. Other small fixes.
|
||
|
|
||
|
01-Feb-1993 MikeMo
|
||
|
makefile
|
||
|
Added -Zp4 to NT builds. We haven't tracked down why this is
|
||
|
needed, but it is.
|
||
|
|
||
|
30-Jan-1993 MikeMo
|
||
|
debfmt.c
|
||
|
debsup.c
|
||
|
shfunc.h
|
||
|
makefile
|
||
|
Added support for the debugger to pass a flag which indicates
|
||
|
whether it wants hex constants to be in upper case or lower
|
||
|
case. (Flag is in eeapi.h.) This option is ON by default
|
||
|
when building the NT DLL, OFF for all others.
|
||
|
|
||
|
Also cleaned up some M68K code that had far more ifdefs than
|
||
|
it needed to.
|
||
|
|
||
|
09-Jan-1993 Georgiop
|
||
|
debbind.c:
|
||
|
debeval.c:
|
||
|
Modified BindContext and EvalContext to treat bp-relative l-values
|
||
|
without converting them to r-values if the explicit context is the
|
||
|
same as the current context (workaround for caviar #6902).
|
||
|
|
||
|
07-Jan-1993 Georgiop
|
||
|
debfmt.c:
|
||
|
Extended EvalMem functionality to handle word, dword and ascii
|
||
|
display (i.e., now the following specifiers are accepted:
|
||
|
m, mb, mw, md, ma. The default (m) is byte display.
|
||
|
|
||
|
05-Jan-1993 Georgiop
|
||
|
debexpr.h
|
||
|
Made SearchBasePtrBase global
|
||
|
|
||
|
debutil.c
|
||
|
Now SetNodeType calls SearchBasePtrBase in order to
|
||
|
find the base symbol of a based pointer.
|
||
|
|
||
|
debsym.c
|
||
|
Disabled calling of SearchBasePtrBase from Searchsym.
|
||
|
|
||
|
05-Jan-1993 Georgiop
|
||
|
debfmt.c
|
||
|
Implemented 'm' format specifier for memory dumps. "addr,m" displays
|
||
|
16 bytes in hex and their ascii equivalents if printable.
|
||
|
|
||
|
29-Dec-1992 Georgiop
|
||
|
debsrch.c
|
||
|
Changed LoadSymVal to load additional bytes if a bitfield crosses
|
||
|
a byte boundary (caviar #6610). Also fixed an off-by-one error
|
||
|
in the index used for accessing BitsToBytes[]. (Related bugs: 3120,
|
||
|
3107)
|
||
|
|
||
|
debeval.c
|
||
|
SBitField was polluting neighboring bits during a bitfield assignment.
|
||
|
Now LoadSymVal is called after the type of the node has been set to
|
||
|
the underlying type of the bitfield.
|
||
|
|
||
|
23-Dec-1992 Georgiop
|
||
|
debapi.c
|
||
|
Defined two new functions FpMask and FpRestore in order to mask
|
||
|
and restore floating point exceptions under WINDOWS3. This is
|
||
|
now used by EEParse, EEvaluateTM and EEGetValueFromTM. (affects
|
||
|
caviar #6765 and #6372)
|
||
|
|
||
|
22-Dec-1992 Georgiop
|
||
|
debutil.c
|
||
|
Restored old behavior of SetNodeType regarding based pointers
|
||
|
and added an extra symbol search. If the symbol on which the
|
||
|
pointer is based is bp-relative we get the base information from the
|
||
|
copy of symbol record in the type section, otherwise we call SearchSym
|
||
|
and do a module/global search. This fix should permit dereferencing
|
||
|
based pointers that are members of a struct, or double dereferencing
|
||
|
of a pointer to a based pointer. (caviar #6413)
|
||
|
|
||
|
18-Dec-1992 Georgiop
|
||
|
debapi.c:
|
||
|
Mask fp exceptions before calling DoEval --cav. #6372
|
||
|
|
||
|
17-Dec-1992 Georgiop
|
||
|
debexpr.c:
|
||
|
Fixed return value in GetChildTM prototype (EESTATUS instead of bool_t).
|
||
|
|
||
|
debsup.c:
|
||
|
GetChildTM now returns EEGENERAL if the parent TM is not expandable.
|
||
|
This should fix caviar #6381
|
||
|
|
||
|
14-Dec-1992 Georgiop
|
||
|
debexpr.h:
|
||
|
Temporary change: added CVFTargetInfo() until it is implemented by
|
||
|
the kernel.
|
||
|
|
||
|
debbind.c:
|
||
|
Modified ParseType to handle 32-bit ptrs (cuda #960)
|
||
|
|
||
|
deblex.c:
|
||
|
Modified ParseString for 32bit support (cuda #908)
|
||
|
|
||
|
debtyper.c:
|
||
|
Modified CvtPtr, CastNode, CvtSizeDown, NormalizeBase for 32bit support
|
||
|
(cuda #857)
|
||
|
|
||
|
debsym.c:
|
||
|
SetAmbiant now supports NEAR32 (cuda #960)
|
||
|
|
||
|
05-Dec-1992 Georgiop
|
||
|
debapi.c:
|
||
|
EEGetChildTM now initializes pExState puts any error messages
|
||
|
to the parent TM. If it fails it frees the child TM. Caviar 5387
|
||
|
|
||
|
debfmt.c:
|
||
|
Removed "NYI" message. FormatClass now prints "{...}" in all cases.
|
||
|
|
||
|
debsym.c:
|
||
|
MatchArgs: If the argument is a type, require an exact match (i.e.,
|
||
|
identical type indices). In general when matching args we
|
||
|
ignore certain modifiers (e.g., const). In this case we want to
|
||
|
be very strict, since we are probably dumping a class and we want
|
||
|
to let all overloaded methods bind properly. Otherwise a "symbol
|
||
|
is ambiguous" message may appear instead of a function name when
|
||
|
dumping a class.
|
||
|
|
||
|
|
||
|
03-Dec-1992 MikeMo
|
||
|
deblexer.asm
|
||
|
Fixed 32-bit version to have the correct size for the
|
||
|
elements of the LexTable: 6 bytes per element rather
|
||
|
than 4. Now lexing works.
|
||
|
deblex.c
|
||
|
deblexer.asm
|
||
|
Changed ParseOp from pascal to stdcall. (Actually in deblex.c
|
||
|
it's defined PASCAL, which is stdcall.)
|
||
|
|
||
|
01-Dec-1992 Georgiop
|
||
|
errors.h:
|
||
|
Added ERR_NOSTACKFRAME: "variable needs stack frame"
|
||
|
debsym.c:
|
||
|
Changed SearchSym to stop the search for a symbol that has
|
||
|
been found and has been rejected because of the fact that we
|
||
|
are in the prolog of a function. Instead of searching the
|
||
|
parent scope we now set an error message and return HR_error.
|
||
|
this fix should also handle the case ?{foo}i where foo is
|
||
|
a function that has not been invoked yet and i is a local
|
||
|
variable in the scope of foo. In that case BindContext will
|
||
|
create a context based on the address of foo, and things
|
||
|
will go on as if we were in the prolog of foo. --caviar #5898
|
||
|
|
||
|
25-Nov-1992 Georgiop
|
||
|
Caviar #5563: error gracefully when a FORTRAN complex type is
|
||
|
encountered. Affected files:
|
||
|
errors.h:
|
||
|
Added new message "type not supported"
|
||
|
debutil.c:
|
||
|
Error detection in UpdateMem, TypeSizePrim
|
||
|
debtyper.c:
|
||
|
Error detection in IntegralPromote, CheckType, CastNode
|
||
|
Also changed CastNode to allow casting of an enum to an int.
|
||
|
debsrch.c:
|
||
|
Error detection in LoadSymVal
|
||
|
debbind.c:
|
||
|
Error detection in BindByteOps, Function
|
||
|
|
||
|
|
||
|
21-Nov-1992 Georgiop
|
||
|
debeval.c:
|
||
|
Added code in PlusMinus to compute the address of a huge array
|
||
|
element. --caviar 2120
|
||
|
|
||
|
Disabled function evaluation for functions that return large
|
||
|
classes or structs (this is because of differences in calling
|
||
|
conventions that do not appear in codeview information.)
|
||
|
|
||
|
Changed EvalDot to call EvalStruct instead of EvalElem if the
|
||
|
Right child is a reference. This should correct the problem
|
||
|
of miscalculating the return value when evaluating a function
|
||
|
that returns a reference to a class. (Changes related to caviar
|
||
|
#5425.)
|
||
|
|
||
|
18-Nov-1992 Georgiop
|
||
|
debparse.c:
|
||
|
Added a special case in FParseExpr in order to parse nested
|
||
|
function calls of the form "fun1(arg1,fun2(arg2))" --cav. #3678
|
||
|
|
||
|
debsym.c:
|
||
|
The test in SearchSym that restricts the function search if an
|
||
|
explicit context is given was moved one level up (from SYM_EXE
|
||
|
to SYM_GLOBAL) because of the changes in the symbol handler.
|
||
|
In addition this test has been enhanced in order to terminate
|
||
|
the search only if a symbol has already been found. This should
|
||
|
fix the problem described in caviar #5321 (empty error message).
|
||
|
|
||
|
CheckDupAmb uses function addresses again in order to determine
|
||
|
if a function is already on the list. A new ADDR field has been
|
||
|
added to search_t struct for this reason. --caviar #5564
|
||
|
|
||
|
Merged change from .420 tree: added explicit casts to (char far *)
|
||
|
for the args of _fstrncmp(). This should not affect the generated
|
||
|
code, since we compile large model anyway. --#5575
|
||
|
|
||
|
debexpr.h:
|
||
|
Added ADDR field in search_t. Removed the old address_t field, as
|
||
|
it was not being used.
|
||
|
|
||
|
debfmt.c:
|
||
|
Added missing quote (') in _fmt_char_zr --caviar #5513
|
||
|
|
||
|
12-Nov-1992 Georgiop
|
||
|
debsym.c:
|
||
|
Changed MatchArgs to tolerate duplicate functions. pName->best is not
|
||
|
updated if the current function is the same as the best one so far.
|
||
|
Changed CheckDupAmb to compare function names and types instead of
|
||
|
addresses. (It was broken because it was accessing a volatile
|
||
|
evaluation node) -- Caviar #4791
|
||
|
|
||
|
11-Nov-1992 Georgiop
|
||
|
debsym.c:
|
||
|
DebLoadConst does not change the type of an enum to the underlying
|
||
|
type any more. This helps proper argument matching. (caviar
|
||
|
#3716, 3718).
|
||
|
debfmt.c:
|
||
|
Format(): In order to display an enum constant as an int, cast it
|
||
|
to the underlying type before displaying it.
|
||
|
|
||
|
05-Nov-1992 Georgiop
|
||
|
debeval.c:
|
||
|
EvalAddrOf now sets an error message instead of asserting
|
||
|
if it sees anything but an l-value (caviar #5191)
|
||
|
|
||
|
debsym.c:
|
||
|
Fixed coding error: '==' was being used instead of '=' in some
|
||
|
assignements related to pExState->err_num. (caviar #4517)
|
||
|
|
||
|
28-Oct-1992 MikeMo
|
||
|
deblexer.asm
|
||
|
For NT, changed from C to PASCAL.
|
||
|
deblex.c
|
||
|
Under NT Beta 1, PASCAL is defined to __stdcall, but we want
|
||
|
to declare ParseOp (which is defined in deblexer.asm) as actually
|
||
|
being pascal, so I changed the prototype from using PASCAL to
|
||
|
using _pascal.
|
||
|
shfunc.h
|
||
|
debapi.c
|
||
|
Use EXPCALL calling convention for exported functions.
|
||
|
eent.mak
|
||
|
No longer need to invoke CVTOMF.
|
||
|
|
||
|
27-Oct-1992 Georgiop
|
||
|
debsym.c:
|
||
|
Changed SearchSym to handle failures of PushStack. This should
|
||
|
prevent a GP fault in low memory conditions (caviar 4075)
|
||
|
debutil.c:
|
||
|
Added check in GrowStack to avoid unlimited growth of stack.
|
||
|
Removed corresponding check from PushStack. (caviar 4075)
|
||
|
debfmt.c:
|
||
|
Increased the size of tempbuf in VerifyFormat so that FLT_MAX
|
||
|
can be printed using %f format. Doubles and Long Doubles that
|
||
|
are too large to be printed in %f format, are now printed in %e
|
||
|
format. (caviar #4049, also related to #933).
|
||
|
|
||
|
20-Oct-1992 MarkBro
|
||
|
debapi.c:
|
||
|
Changed order of checking in EEGetExtendedInfo. It was checking
|
||
|
for ETIPOINTER before ETIARRAY. The problem was that arrays
|
||
|
are always pointers, but pointers aren't necessisarily arrays. So
|
||
|
now, check to see if the htm is an array before a pointer.
|
||
|
|
||
|
16-Oct-1992 Georgiop
|
||
|
debeval.c:
|
||
|
Added VFuncAddress2 function in order to compute the address of
|
||
|
a virtual function if the offset in the vtable is given
|
||
|
(VFuncAddress does a similar thing, but uses the function index,
|
||
|
not the offset). This should solve caviar #4094. (Also inlined
|
||
|
these functions as they were called only once.)
|
||
|
|
||
|
debsym.c
|
||
|
Modified MatchArgs in order to allow matching a far pointer with
|
||
|
an array that has the same underlying type. Based pointer matching
|
||
|
is not supported. (caviar #3713)
|
||
|
Also changed definitions of vtabind (UOFFSET instead of ushort) and
|
||
|
made the EE skip 4 bytes instead of 2 when accessing the vtab offset
|
||
|
in an LF_MLIST record. (caviar #4342)
|
||
|
|
||
|
|
||
|
16-Oct-1992 MikeMo
|
||
|
cvinfo.h
|
||
|
cvtypes.h
|
||
|
eeapi.h
|
||
|
shapi.h
|
||
|
types.h
|
||
|
Deleted, moved to the CVINC.420 project.
|
||
|
|
||
|
makefile
|
||
|
*.mak
|
||
|
Modified to support the new CVINC.420 project.
|
||
|
|
||
|
15-Oct-1992 Georgiop
|
||
|
debsym.c:
|
||
|
Modified MatchArgs to handle actual arguments that are references.
|
||
|
This should fix the third function call mentioned in caviar #4182.
|
||
|
Also changed two error messages to ERR_AMBIGUOUS instead of
|
||
|
ERR_ARGLIST.
|
||
|
|
||
|
14-Oct-1992 Georgiop
|
||
|
debbind.c:
|
||
|
Changed the way VerifyFormat treated floating point format
|
||
|
specifiers: Now g,e,f can be used with any floating point
|
||
|
type. All prefixes except h are accepted, but are actually
|
||
|
ignored: the EE uses the right prefix based on the size of
|
||
|
the corresponding size. (caviar #933, #4058)
|
||
|
|
||
|
13-Oct-1992 GlennN
|
||
|
debsym.c:
|
||
|
bug 4380. SearchRoot() changed to ignore returns
|
||
|
of NOTYPE when it encounters a nested unnamed ENUM
|
||
|
type. By doing this searches of classes with
|
||
|
unnamed enums will not abort prematurely. After
|
||
|
review from SteveSm We put a check around the
|
||
|
break, we only do this if we are binding a
|
||
|
breakpoint so that we minimize the potential
|
||
|
impact.
|
||
|
|
||
|
11-Oct-1992 MikeMo
|
||
|
debapi.c
|
||
|
debbind.c
|
||
|
deberr.c
|
||
|
debsup.c
|
||
|
debsym.c
|
||
|
debexpr.h
|
||
|
errors.h:
|
||
|
Added hErrStr to the exstate_t structure to save additional info
|
||
|
about an error, so that if a "symbol not found" error occurs we
|
||
|
can tell the user what symbol wasn't found.
|
||
|
makefile:
|
||
|
Changed NT build to use -Z7 instead of -Zi, and to not use -f
|
||
|
since cl3232 doesn't recognize it.
|
||
|
|
||
|
10-Oct-1992 MikeMo
|
||
|
*.mak makefile:
|
||
|
Cleaned up some of the make stuff, to reduce needless repetition.
|
||
|
types.h:
|
||
|
SEGBASED(x) maps to _based(x) for 16-bit, nothing for 32-bit
|
||
|
INLINE maps to __inline (the EE uses this)
|
||
|
_fstrcmp maps to strcmp on NT
|
||
|
debapi.c:
|
||
|
Removed eedllinit(); link sets entry point to _CRT_INIT directly.
|
||
|
debbind.c deberr.c debfmt.c debeval.c deblex.c debparse.c debsym.c:
|
||
|
Use SEGBASED instead of _based.
|
||
|
deberr.c debfmt.c:
|
||
|
Fix lots of bogus based/unbased warnings.
|
||
|
*.*
|
||
|
Lots of fixes to get it working under NT.
|
||
|
|
||
|
07-Oct-1992 Georgiop
|
||
|
debbind.c:
|
||
|
BindBScope now reorganizes the tree if its left child foo has
|
||
|
been rewritten as "this->foo". Reorganizing is necessary to
|
||
|
restore operator priority (the bscope operator has higher priority
|
||
|
than '->'). This should fix caviar #932, 2571.
|
||
|
|
||
|
06-Oct-1992 Georgiop
|
||
|
debparse.c:
|
||
|
Added a static table with the primitive type names. This table
|
||
|
is scanned when an expression like "(token) op ..." is parsed,
|
||
|
where op is an operator that has a binary and a unary form (e.g,
|
||
|
+, -, *, &). If "token" is a primitive type name we know that
|
||
|
the expression is a type cast and the operator is unary
|
||
|
(caviar #3836)
|
||
|
|
||
|
|
||
|
05-Oct-1992 Georgiop
|
||
|
debeval.c
|
||
|
Added a new function (IsStringLiteral) that gets called by
|
||
|
EvalFunction before the invokation of PushString.
|
||
|
PushString is not called unless there is actually a quoted
|
||
|
string in the expression that needs to be pushed on the
|
||
|
user's stack. (this should solve caviar #4152)
|
||
|
|
||
|
|
||
|
05-Oct-1992 v-natjm
|
||
|
makefile: Modified these two files to handle the new Visual
|
||
|
eew0cxx.mak: C++ DLL names
|
||
|
|
||
|
04-Oct-1992 Georgiop
|
||
|
debsup.c
|
||
|
'format' pointer in GetChildTM was incorrectly typed as static.
|
||
|
|
||
|
04-Oct-1992 Georgiop
|
||
|
debeval.c
|
||
|
Fix for caviar #932,4092,4099: EvalFunction fakes a stack entry
|
||
|
before evaluating Lchild (if the Lchild node is OP_bscope).
|
||
|
|
||
|
04-Oct-1992 MikeMo
|
||
|
debapi.c
|
||
|
Fixed EEGetAccessFromTM: (1) it failed to handle a number of
|
||
|
error cases; (2) it was allocating a much bigger buffer than
|
||
|
it needed. Also commented the little bugger.
|
||
|
|
||
|
Changed two uses of "C_only" to "C_ONLY".
|
||
|
|
||
|
02-Oct-1992 JimSa
|
||
|
debbind.c
|
||
|
Need to fail for _segment in BuildType() when debugging 32 bit .exe.
|
||
|
(Cuda #962)
|
||
|
debsym.c
|
||
|
Needed to set addr.flat32 bit for S_*32 symbols in SymToNode().
|
||
|
This was only bein done for M68K but needed to be done for all
|
||
|
32 bit expression evaluation. (Cuda #1030)
|
||
|
|
||
|
01-Oct-1992 Georgiop
|
||
|
debsup.c:
|
||
|
GetChildTM uses radix of parent TM for generating array indices (caviar
|
||
|
#3910, see also #872)
|
||
|
|
||
|
30-Sep-1992 GlennN
|
||
|
debapi.c
|
||
|
eeapi.h
|
||
|
shfunc.h
|
||
|
added parameter fForceBind to pass to EEBind from this call.
|
||
|
|
||
|
30-Sep-1992 Georgiop
|
||
|
debeval.c:
|
||
|
Changed Relational() and Arith() for special handling of near null
|
||
|
pointer comparison (caviar #3699, #3654)
|
||
|
DoEval() now allocates EStack space if hEStack is Null (caviar #3804)
|
||
|
EvalFunction() was not handling correctly references to integers
|
||
|
constants (caviar #3712)
|
||
|
|
||
|
debbind.c:
|
||
|
PushCArgs, PushPArgs, PushFargs: if the argument is a reference use
|
||
|
SetNodeType for the underlying type in order to remove modifiers.
|
||
|
(caviar #3712)
|
||
|
|
||
|
errors.h:
|
||
|
Changed "implicit conversion required" message to "argument type not
|
||
|
supported" (caviar #3843)
|
||
|
|
||
|
29-Sep-1992 v-natjm
|
||
|
eew0cxx.mak:
|
||
|
Added /NOE to link command line to avoid the linker error on multiple
|
||
|
symbols for WEP (Build with C800)
|
||
|
|
||
|
21-Sep-1992 Georgiop
|
||
|
debsym.c:
|
||
|
SkipModifiers now handles primitive types
|
||
|
|
||
|
18-Sep-1992 DanS
|
||
|
eentcxx.mak
|
||
|
remove ntmain.obj, -base switch, use libcmt.lib
|
||
|
debapi.c
|
||
|
add call to _CRT_INIT from eedllinit
|
||
|
coffbase.txt
|
||
|
ntmain.c
|
||
|
|
||
|
removed from project
|
||
|
17-Sep-1992 Georgiop
|
||
|
debexpr.h
|
||
|
Added overloadCount field in search_t.
|
||
|
debsym.c:
|
||
|
Changed MatchArgs, MatchFunction and MatchMethod to require exact
|
||
|
type matches for overloaded function calls.
|
||
|
debbind.c:
|
||
|
Disabled error checking for string literals.
|
||
|
BindCast now propagates type info to the OP_CAST node. This is necessary
|
||
|
for calling functions with cast string literals as arguments.
|
||
|
debeval.c:
|
||
|
Changed the conditions under which PushString is called by EvalFunction
|
||
|
debutil.c:
|
||
|
SetNodeType now sets PTR_UTYPE for primitive pointer types
|
||
|
(changes related to caviar #919)
|
||
|
|
||
|
10-Sep-1992 Georgiop
|
||
|
debsym.c:
|
||
|
Changed SetBPValue to save the offset of a class member (caviar #1756)
|
||
|
|
||
|
10-Sep-1992 DanS
|
||
|
debeval.c:
|
||
|
far -> FAR (portability)
|
||
|
deblexer.asm:
|
||
|
rewrote ParseOp for 32-bit i386, used HOST32 macro to key 32-bit code.
|
||
|
debsym.c:
|
||
|
far -> FAR (portability)
|
||
|
debutil.c:
|
||
|
far -> FAR (portability)
|
||
|
makefile:
|
||
|
added eentcxx
|
||
|
opprec.c:
|
||
|
bug on using pointer from strpbrk w/o checking for NULL
|
||
|
eentcxx.mak:
|
||
|
added for NT build of EE
|
||
|
coffbase.txt:
|
||
|
HACK! copied from NT for basing DLLs in NT.
|
||
|
|
||
|
4-Sept-1992 Rossg
|
||
|
cvinfo.h
|
||
|
Update to cvinfo with LF_VARSTRING numeric leaf
|
||
|
|
||
|
03-Sep-1992 Georgiop
|
||
|
debutil.c:
|
||
|
TypeDefSize now handles T_CHAR, T_UCHAR, T_INT2, T_UINT2
|
||
|
T_INT4, T_UINT4 when dealing with bitfields.
|
||
|
|
||
|
01-Sep-1992 Georgiop
|
||
|
debbind.c:
|
||
|
debeval.c:
|
||
|
Changed T_PCHAR to T_PRCHAR so that string literals can be
|
||
|
passed as arguments to functions. (Caviar #3127 -- this was
|
||
|
a regression caused by the changes on 16-Jul-92)
|
||
|
|
||
|
28-Aug-1992 Georgiop
|
||
|
debbind.c:
|
||
|
Bug fix in ParseType: restore original start and length of type
|
||
|
string.
|
||
|
debtyper.d:
|
||
|
Do not allow casting of an object to a pointer.
|
||
|
|
||
|
28-Aug-1992 Georgiop
|
||
|
debapi.c:
|
||
|
Do not print "public " when displaying access type info.
|
||
|
|
||
|
25-Aug-1992 Georgiop
|
||
|
eeapi.h:
|
||
|
debapi.h:
|
||
|
Added extra argument in EEGetAccessFromTM, so that one can choose
|
||
|
between the full text and the abbreviated version
|
||
|
|
||
|
24-Aug-1992 Georgiop
|
||
|
debeval.c:
|
||
|
Changed EvalFunction to call EvalUtil in case the formal argument
|
||
|
type is a reference to a class. (caviar #914)
|
||
|
debsym.c:
|
||
|
MatchArgs now allows references. Both changes are for caviar #914
|
||
|
|
||
|
20-Aug-1992 Georgiop
|
||
|
debsym.c:
|
||
|
Removed a line from MatchFunction that accessed pSymClass. This
|
||
|
line had been added (incorrectly) in order to support
|
||
|
propagation of access type info, and could produce a GPfault.
|
||
|
|
||
|
19-Aug-1992 MarkBro
|
||
|
debapi.c:
|
||
|
Added missing entries in the EXF struct in EEInitializeExpr.
|
||
|
|
||
|
18-Aug-1992 MarkBro
|
||
|
dosdll.asm:
|
||
|
Added missing entries in the dosx exe header.
|
||
|
|
||
|
16-Aug-1992 Georgiop
|
||
|
debapi.c:
|
||
|
Comment out DASSERT in EEGetAccessFromTM (conversion functions
|
||
|
did not bind ok, so EEGetAccessFromTM was hitting the assersion)
|
||
|
debeval.c:
|
||
|
restore access flags after evaluation
|
||
|
debsym.c:
|
||
|
support propagation of access type information
|
||
|
|
||
|
11-Aug-1992 Georgiop
|
||
|
debapi.c:
|
||
|
ParseBind now uses the radix stored in the TM. This is a
|
||
|
fix for Caviar #872
|
||
|
|
||
|
23-Jul-1992 Georgiop
|
||
|
debeval.c:
|
||
|
EvalBScope faked up a stack entry if CLASS_GLOBALTYPE(pv) was
|
||
|
true, and the stack was empty. However, in cases like ?C::foo(5)
|
||
|
CLASS_GLOBALTYPE may be true, and the stack is not empty (i.e., it
|
||
|
contains the argument to the function), yet a separate entry is
|
||
|
required on the stack. The change was to enable faking up a stack
|
||
|
entry in this case.
|
||
|
|
||
|
23-Jul-1992 Georgiop
|
||
|
debsym.c:
|
||
|
Disabled the code in SearchQualName that tried a symbol even if
|
||
|
there was not exact type match when binding breakpoints.
|
||
|
According to RossG this was a hack for an incomplete pack
|
||
|
problem that should have been fixed by now. Disabling this
|
||
|
code resolves Caviar #1081.
|
||
|
|
||
|
23-Jul-1992 Georgiop
|
||
|
debapi.c:
|
||
|
accessstr = {" ", "private ", "protected ", "public "}
|
||
|
(Changed uppercase 'P' to lowercase after a request from
|
||
|
Sequoia people)
|
||
|
|
||
|
21-Jul-1992 Georgiop
|
||
|
debbind.c:
|
||
|
Fixed ParseType to retain type information if the type is an alias
|
||
|
to a primitive type. [Caviar # 2271]
|
||
|
|
||
|
17-Jul-1992 Georgiop
|
||
|
debfmt.c:
|
||
|
Fixed bug in FormatProc, in order to print the function return type
|
||
|
if select is 0. This takes care of bugs 1142 and 2343. The kernel
|
||
|
should also be modified to call EEGetTypeFromTM using a handle to
|
||
|
a Name. That way EEGetTypeFromTM will insert the name in the proper
|
||
|
place and a function name will be displayed as "void foo(void)",
|
||
|
not "void (void) foo".
|
||
|
|
||
|
16-Jul-1992 Georgiop
|
||
|
deblex.c:
|
||
|
ParseString now sets type to T_RCHAR instead of T_CHAR. This
|
||
|
takes care of bug 917, although the real problem (EE does not
|
||
|
distinguish between explicit and implicit casts) remains.
|
||
|
|
||
|
16-Jul-1992 Georgiop
|
||
|
errors.h:
|
||
|
Added ERR_NOMODIFIABLELV (l-value is not modifiable)
|
||
|
|
||
|
debbind.c:
|
||
|
BindAssign now checks for non-modifiable l-values (arrays,
|
||
|
functions, or constants) -- CAVIAR bug 952
|
||
|
|
||
|
09-Jul-1992 Georgiop
|
||
|
debapi.c:
|
||
|
eeapi.c:
|
||
|
Added a new enumarator as a return value for EEIsExpandableTM:
|
||
|
ETYPEPTR denotes that the TM is a type that is expandable as a
|
||
|
pointer to a type. (The underlying type may or may not be
|
||
|
expandable). This solves CAVIAR bug 927.
|