1 --------------------------------------------------------------------------------
2 DejaInsight release notes
3 --------------------------------------------------------------------------------
5 --------------------------------------------------------------------------------
7 --------------------------------------------------------------------------------
10 - Added "Add IPs" and "Add Applications" buttons to the Deja Launcher activity
11 log panel. The buttons will be enabled when you select one or more log
12 entries that have an IP or Application name not in your filter lists.
13 Clicking the button adds all selected IPs or Application Names to the
14 appropriate filter lists. Duplicates will not be added.
15 - Added support for setting the hardware thread on which the Deja threads
16 execute through the use of:
17 DEJA_SET_PARAMETER( DEJA_XBOX360_THREAD_PROCESSOR, n ).
20 - Fixed double clicking in the Launcher session list to load old sessions when
21 there is a space in the Temporary folder path.
22 - Fixed a minor memory leak in the Launcher related to the log view.
23 - Fixed an error in the Heap API mismatch error detection logic that resulted
25 - Fixed potential crash bug when executing a "Goto Item" in an empty list
27 - Added code to restore the Notification Icon for Launcher if explorer.exe is
30 --------------------------------------------------------------------------------
32 --------------------------------------------------------------------------------
35 - Added an "Enabled" column to the bookmarks window. Bookmarks are enabled by
36 default. When disabled the bookmarks are skipped by F2, shift-F2 operations
37 and they are not considered in the "surrounding bookmarks" time range mode.
38 This lets you quickly disable bookmarks that are interfering with your
39 profile ranges without deleting them.
40 - Improved Deja Flush thread performance. The thread used to wake up every
41 10ms, it now only wakes every 500ms.
42 - Color coding in the heap graph now shows all blocks allocated within the
43 selected time range in red, if there is no range then the last 1% of blocks
44 allocated are shown as red.
47 - The "Log only known IP's" state is now saved between runs of Deja Launcher.
48 - Fixed a minor repaint bug where bookmarks toggled with ctrl-F2 were not
49 immediately shown in the object watch window.
50 - Fixed display of context menu from launcher tray icon when the taskbar is
51 not at the bottom of the screen.
53 --------------------------------------------------------------------------------
55 --------------------------------------------------------------------------------
58 - Added new error messages to better explain DejaLib instrumentation problems
59 in the object tracking system.
60 - Added right click menu to the Deja Launcher tray icon.
61 - The END key in log views will now attach the view back to time so the view
62 will scroll with new data.
64 --------------------------------------------------------------------------------
66 --------------------------------------------------------------------------------
69 - Revised the unhandled exception handler to more reliably create Minidump
70 files when an exception occurs in other threads.
71 - Added Shift+Delete, Ctrl+Insert, Shift+Insert keys for Cut, Copy, Paste in
73 - Using DEJA_SET_AUTO_FLUSH now generates a warning message in the trace log.
74 - Added basic free block information to the heap graph view when the mouse
75 cursor hovers over an area with no allocations.
76 - Added column showing total bytes posted to the Types view.
77 - Find next / prev warning in the channel tree now finds warnings and errors.
78 - Find next / prev warning in the heap log now finds warnings and errors.
79 - The heap log now shows mismatched Heap API calls in red, for example a
80 malloc followed by a delete. These errors are also tracked in the trace log.
81 - Changed the close button on Deja Launcher to close the application with an
83 - Changed Escape in Deja Launcher to warn that it will minimize the window to
85 - Changed Minimize in Deja Launcher to warn that it will minimize the window
87 - Added persistence of the type view visible checkboxes across sessions.
90 - Fixed crash when trying to paste in an edit control with an empty clipboard.
92 --------------------------------------------------------------------------------
94 --------------------------------------------------------------------------------
97 - Added a 'Show All Channels' option to the trace channels context menu.
98 - Added a 'Goto Type' option to the object log context menu.
99 - Added a 'Show All Types' option to the types view context menu.
100 - Removed Debug versions of the deja libraries from the distribution and
101 renamed the libraries to 'DejaLib.Win32.lib', 'DejaDLL.Win32.dll', and
103 - The type view can now be used to filter the object log using the 'visible'
106 --------------------------------------------------------------------------------
108 --------------------------------------------------------------------------------
111 - Added a types view with cross referencing to the objects window and
112 statistics for the total instances and posts for each object type.
113 - Added Visual Studio style ctrl+Tab processing with a window stack. ctrl+Tab
114 cycles backwards and ctrl+shift+Tab cycles forwards through the stack. This
115 works well to set focus back after it is changed by a double click in the
116 object log or heap log/graph windows.
117 - Double clicking in the heap log activates or creates a heap graph window and
118 zoom into that block.
119 - Double clicking a block in the heap graph activates or creates a heap log
120 window and goes to the log entry for that block.
121 - Double clicking in the object log activates or creates an object watch
122 window and adds that object to the watch list.
123 - Added keys * and / and shift or ctrl-Click to recursively open or close tree
127 - Fixed selection logic in some windows for reversed selections.
128 - Fixed goto next and previous cross reference in the object log view.
129 - Fixed saving channel tree state expanded states when right / left keys are
130 used to open and close tree nodes.
131 - Fixed problem of sometimes creating new windows off screen when monitor
132 configuration is changed.
133 - Fixed column separator double click auto sizing to include the last visible
136 --------------------------------------------------------------------------------
138 --------------------------------------------------------------------------------
141 - Added DEJA_SET_VALUE( Name, Value ) macro to give the application control
142 over certain Deja Insight parameters. The first supported variables are:
147 - For example to set the warning indicator at 30fps and the error at 20fps in
149 - DEJA_SET_VALUE( "Frame.Warn.fps" , 30 );
150 - DEJA_SET_VALUE( "Frame.Error.fps", 20 );
151 - The trace log view now more accurately tracks focus between repeated
152 filtering operations. It now seeks to a time index rather than a list item
154 - Added Enabled columns to IP and App filter tabs in Deja Launcher to quickly
155 disable or enable entries without deleting and recreating them.
158 - Fixed rare Insight crash when viewing VLA's in an Object Watch view.
159 - Fixed crash in Launcher when the session status hasn't updated to closed
160 and the session is double clicked in an attempt to open the Insight.
162 --------------------------------------------------------------------------------
164 --------------------------------------------------------------------------------
167 - Added support to allow DEJA_OBJECT_INIT and DEJA_POST to accept arrays of
169 - Added DEJA_IF_PTR and DEJA_CSTRING for use within DejaDescriptor functions.
170 - DEJA_IF_PTR will post the content of the given pointer if it is non-null.
171 Note that it will only post a single instance of the target type. To post
172 multiple instances of the target type (thus a variable length array), use
174 - DEJA_CSTRING will post a standard, NULL-terminated C string.
175 - DEJA_VLARRAY will now show the address specified by the given pointer even
176 if the specified count is zero.
177 - Variable length string fields (described via either DEJA_CSTRING or
178 DEJA_VLARRAY) will show the string when "closed" in an Object Watch window,
179 and the address and element range when "open".
180 - When an object having VLA fields is added to an Object Watch window, Insight
181 will automatically set the count based on the largest size of the VLA within
182 10 posts of the current time index. Similarly, when you double click on a
183 VLA field type in an Object Watch, the Count field is prepopulated with the
184 VLA maximum size within 10 post of the current time index.
185 - Restructured the data posting system (DEJA_POST) in the process of adding
186 support for variable length arrays within objects (via DEJA_VLARRAY).
187 - The DEJA_FIELD command now understands static sized arrays directly. The
188 DEJA_ARRAY command is aliased to DEJA_FIELD for now, but will be retired in
190 - Previous post functionality:
191 - DEJA_FIELD( Object.m_Array ); // output = address of the array
192 - DEJA_ARRAY( Object.m_Array ); // output = contents of entire array
193 - New post functionality:
194 - DEJA_FIELD( Object.m_Array ); // output = contents of entire array
195 - Added a new cell highlight to show which cell in causing a cross reference
197 - Added Object and Context cross referencing to the heap log.
198 - Hooked up Next/Prev Warning/Error navigation in the frame log. This makes it
199 very easy to find bad frames.
200 - Modified the way setting the start and end points for custom time ranges
201 works to be more intuitive.
204 - Fixed F10 and shift-F10 navigation to next and previous active allocation in
206 - Fixed pinning Launcher to start menu, it is now able to find Insight
208 - Fixed browse for layout in the Insight options dialog.
209 - Improved coherency of window layouts between Insight sessions controlled by
212 --------------------------------------------------------------------------------
214 --------------------------------------------------------------------------------
217 - Added new buffering scheme for heap free operations. These are costly to
218 write into the database, with each free potentially causing a disk seek. The
219 new buffer helps smooth out the hit from a large number of free operations
220 in a short space of time, like a game level unload.
221 - Insight now creates Object Log and Object Watch views as necessary to
222 satisfy the user Goto Object and Add Object to Watch requests.
223 - Added 'Goto Object' and 'Add Object to Watch' options to the heap log
225 - Added Object and Context cross references to the heap log.
226 - Added 'Add Object to Watch' option to the object log context menu.
227 - Added 'Add Object to Watch' option to the trace log context menu.
228 - Modified Deja Launcher "Concurrent Insight" limit to not shut down active
229 sessions, that is Deja Insight instances that are still connected to their
230 client applications. This makes the limit more of a target that can be
231 exceeded if you have a lot of active processes. As the client applications
232 close the corresponding Insight will close if the active number is above the
234 - Added a new "custom" range mode to the time bar. The start and end times can
236 - Insight no longer adds session filenames loaded by double clicking on them
237 in Launcher to the recent files list. This avoids all the GUIDs in the
241 - Save configuration when the 'Yield' button is toggled by the user. This
242 improves the coherency of settings between Insight sessions created by
245 --------------------------------------------------------------------------------
247 --------------------------------------------------------------------------------
250 - Contexts from the Trace, Heap, and Object Logs now only cross reference to
251 the specific instance of the context within the Context Tree. Previously
252 cross referenced to all instances in the tree.
253 - Heap tracking version 2. A rewrite of the heap tracking system in Insight to
254 improve performance and storage efficiency.
257 - Changed Insight to save the Channel view state whenever the state is changed
258 by a user interface operation.
260 --------------------------------------------------------------------------------
262 --------------------------------------------------------------------------------
265 - Fixed XBox360 compatibility with DejaLauncher and added an additional error
266 message to the log to help diagnose connection problems.
267 - There was an execution path during the rendering of the Context List which
268 did not properly lock shared data for access. If the timing was just right
269 (that is, seemingly at random), the data could be read during the middle of
270 a larger atomic update which was resulting in an access violation (null
273 --------------------------------------------------------------------------------
275 --------------------------------------------------------------------------------
278 - Trace Log view modified to include the full context tree in the context
280 - Added a basic "frames" view that shows information about each frame
281 including duration and heap activity.
282 - Improved the sessions tab in Deja Launcher. There are now fields to show the
283 status of the session "Active, Open, Closed" and related color coding. There
284 is also a new column to shown which platform the application connected from.
287 - Added a watchdog event to Deja Launcher to verify the status of any child
288 Deja Insight processes. This catches the case where Insight has either
289 crashed or been killed by task manager, etc.
290 - Resolved problem with creating new temporary folders that already exist,
291 also now tests to make sure it is a folder and not a file.
292 - Fixed a Deja Launcher crash that can occur after running for a long period
294 - Fixed a Deja Launcher deadlock that can occur when managing large numbers of
296 - Fixed the window title in Deja Insight so that it displays the name of the
297 connected application or the filename of a loaded session.
299 --------------------------------------------------------------------------------
301 --------------------------------------------------------------------------------
304 - Added support for projects where wchar_t is not a built-in type. (For
305 example: Developer Studio 2003 projects using default compiler settings.)
306 - Extended the formatted output specifications. %hs indicates a narrow string
307 argument, and %ls indicates a wide string argument. The interpretation of
308 %hs and %ls is not affected by the width of the format string (unlike %s and
310 - Launcher now processes a double click in the session list to show the
311 Insight instance associated with that session or to launch a new Insight
312 with the old session loaded.
314 --------------------------------------------------------------------------------
316 --------------------------------------------------------------------------------
319 - Improved the Export Active Heap feature. The process should be
320 substantially faster. New data fields have been added: context, scoped
321 object, heap function, and source.
322 - Added a spinner control to the launcher sessions tab to control the number
323 of old sessions kept in the temporary folder.
324 - Context Tree view will remember the open/closed state of each node in the
326 - When Insight is launched in stealth mode it will now automatically exit when
327 the client application disconnects.
328 - Added a free drive space check and warning dialog to Launcher when it runs.
329 - Added free drive space check to Launcher to prevent launching Insight and
330 flag an error message in the activity log if free space is too low.
331 - Added free drive space check to Insight on startup in standalone mode. It
332 will display an error dialog and close if free space is too low.
333 - Added an Insight launch mode control to Deja Launcher. Insight can be set to
334 launch in Stealth, Minimized, Normal or Maximized modes of operation.
335 - When in frame time range mode and watching live time, the last COMPLETE
336 frame will be used as the time range. This improves the "experience
337 quality" when watching the Context List view in Live Time with Frame Time
339 - Added cross references based on context to Context List, Context Tree, Heap
341 - Added a "Log only known IP's" checkbox to the Launcher activity log. This
342 will only log traffic from the IP's in your IP filter list when enabled, it
343 logs all traffic when disabled.
344 - Channel Visibile and Enabled states are now linked to the client application
345 name and the last 2000 states are retained, not just the states from the
346 last session captured.
349 - Fixed crash when no bookmarks were set and the Bookmark Time Range mode was
351 - All strings (channels, labels, format strings, %s arguments) are now clipped
352 to a maximum of 1024 characters (either narrow or wide).
353 - Fixed Arg0 processing in DejaLib when there are spaces in the path.
355 --------------------------------------------------------------------------------
357 --------------------------------------------------------------------------------
360 - The functionality of the Timebar sync buttons in the heap log and object log
361 has changed to allow cursor navigation within the views without altering the
363 - The Time Bar now takes keyboard focus when clicked with the mouse. This
364 allows for accurate bookmark setting and navigation with F2 keys.
366 --------------------------------------------------------------------------------
368 --------------------------------------------------------------------------------
371 - Changed ctrl-F in the heap log view to a text find dialog.
372 - Removed the IP Filter checkbox from the launcher, it always filters now.
373 - New buttons on tool bar to set range modes. Available modes are "Start to
374 Cursor" (normal operation), "Surround Bookmarks", and "Surrounding Frame".
375 The range mode currently only affects the two context views.
378 - Fixed crash when loading a saved session failed.
379 - Fixed state of channel visibility checkboxes when loading a saved session.
381 --------------------------------------------------------------------------------
383 --------------------------------------------------------------------------------
386 - Removed templates from the object system interface.
387 - Added class as an argument to DEJA_BASE (within a DejaDescriptor). This
388 fixes support for multiple inheritance by allowing multiple DEJA_BASE
389 statements in a Descriptor.
390 - Reversed the order of parameters to DEJA_TYPE and DEJA_ENUM (within a
391 DejaDescriptor) to improve code readability.
392 - Added support for wide file names to the heap functions.
393 - DEJA_SET_AUTO_FLUSH now only accepts a bool value.
394 - Default parameter to DEJA_FLUSH is now true.
395 - Retired DEJA_STRING. Use DEJA_ARRAY for fixed length character arrays.
396 - In the Object Watch view, the labels <create> and <destroy> have been
397 changed to <INIT> and <KILL> to correspond better with DEJA_OBJECT_INIT and
399 - Added a "Disconnect" button to the toolbar that closes the connection
400 between Insight and the user application. The button also reflects the
402 - In the context List, contexts with all hits in the "future" are now colored
404 - Added a new Goto command bound to ctrl-G in log views for direct access by
406 - Modified Trace Log view to keep the current focus item (or the remaining
407 closest item) centered after filtering.
408 - Added column sort information to saved layout.
409 - Context List sort defaults to Global %.
412 - Fixed Channel enabled and visible state Save / Load.
413 - Fixed a major slowdown in the heap tracking system.
414 - Fixed memory leak when searching in log views with no entries.
415 - Removed case sensitivity on command line options.
416 - Stopped duplicate entry of objects into watch window when double clicking in
419 --------------------------------------------------------------------------------
421 --------------------------------------------------------------------------------
424 - Trace Channels View: Added context menu commands "Hide Selected Channels",
425 "Show Selected Channels" and "Show Only Selected Channels".
426 - Added "current time active context" highlight to Context List.
427 - Changed the Trace Log "Hide channel" context menu option to "Hide Selected
429 - Added double click support to Context List.
430 - Added support for sorting columns to Context List.
431 - Added a Bookmarks view for managing bookmarks. The view displays the time,
432 source view and an editable comment for each bookmark.
433 - Alphabetically order siblings in the Context Tree.
434 - Highlight the current conext (for each thread) in the Context Tree.
435 - Color "future" data blue in the Context Tree.
436 - Added more context menu options (find, next cross reference, next same
437 context) to the Context Tree pane.
438 - Dialogs now remember their position instead of defaulting to the center of
439 their parent window. This position is also saved with the window layout.
440 - Restore focus to the correct panel when switching away then back to Deja
441 Insight with mouse or Alt-TAB.
442 - Modified list views to center items when the user goes to an item that is
443 off screen through a menu command or accelerator. For example using the
444 function keys or find dialog.
447 - Trace Log View: Changed the "Hide Channels" context command to "Hide
448 Selected Channels" and fixed the functionality to hide all selected instead
449 of just the focus item.
450 - As nodes were added to the Context Tree, the "focus" item would not always
451 "follow" its data. Fixed. Also, if the focus was visible before data is
452 added, then the tree list will automatically scroll to keep the focus in
455 --------------------------------------------------------------------------------
457 --------------------------------------------------------------------------------
460 - Insight displays an error if a non-literal string is used in DEJA_CONTEXT.
463 - Fixed shutdown of DejaLib in the situation where the threads have been
464 terminated without notification.
466 --------------------------------------------------------------------------------
468 --------------------------------------------------------------------------------
471 - Added F2 and shift-F2 handling for next and previous bookmark to all windows.
474 - Fixed problem of skipping adjacent bookmarks in logs.
476 --------------------------------------------------------------------------------
478 --------------------------------------------------------------------------------
481 - Added support for displaying type long and 64 bit integers via DEJA_TRACE.
482 "%d"=int, "%ld"=long, and "%lld"="long long" or int64.
483 - New Drag and Drop interface for adding objects to watch windows.
484 - Changed list copy behavior. ctrl+C copies the visible columns, shift+ctrl+C
485 copies the selected columns.
486 - Added drag and drop from object list to object watch window.
487 - Added more support for formatted output specifications. All valid format
488 specifications should now be accepted. Note that the flags, width, and
489 precision specifications are parsed but not used when generating output at
493 - Copy columns selection wasn't working correctly when columns were reordered.
494 - DejaLib could not find Insight on the same machine when there were no
495 network connections. Fixed.
496 - Reworked the atomic type DejaDescriptor declarations. This allows fields of
497 type "long" and "long long" to work now.
498 - Escape now clears the selection in the object watch window.
500 --------------------------------------------------------------------------------
502 --------------------------------------------------------------------------------
505 - Added new context menu option to the trace log view to hide this channel.
506 - Changed object watch column size algorithm to use the target as a minimum.
509 - Insight was crashing when trying to report E4000 (object collision from
510 DEJA_OBJECT_INIT). It was trying to get the name of the "new" object before
511 it had been registered with the system. Fix: If there is a collision, set a
512 flag and save the name of the old object, then proceed with the new object,
513 and finally report the error.
514 - Fixed object watch display of u64 and s64 types.
516 --------------------------------------------------------------------------------
518 --------------------------------------------------------------------------------
521 - Added Goto Object context menu choice in the trace log view.
524 - Fixed Windows XP classic mode rendering.
526 --------------------------------------------------------------------------------
528 --------------------------------------------------------------------------------
531 - Added Context menu with Goto Source to context list and tree views.
532 - Removed "gray" bitmaps for channels with errors and warnings.
533 - Added "Child Logs" subtotals to channel tree view.
534 - Added find / warning / error navigation controls to the channel tree view.
535 - Added persistence to channel Collapsed / Expanded states.
536 - Added processing of DEJA_APP_LABEL to set the main window title. Unless the
537 session is saved, then the filename is used.
538 - Optimizations to channel handling in support of dynamic channels.
539 - Added context menu option for goto channel to Trace View.
542 - Fixed right arrow to expand tree node in channel tree view.
543 - Added check in new frame creation to ensure it is visible on a monitor.
544 - Added Escape to clear selection event handler to the context list view.
545 - Added Escape to clear selection event handler to the context tree view.