Windows2000/private/windbg64/debugger/ee/changes.txt
2020-09-30 17:12:32 +02:00

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.