Category: Developer Utilities
Addon Information
Download Latest Version.
To add favorites please register for a free account. If you already have one you need to login. How do I install this? (FAQ)
Ansu's Portal Bug Reports Feature Requests
Author:
Version:
0.017
Date:
10-21-2008 12:23 AM
Size:
35.98 Kb
Downloads:
639
Favorites:
13
MD5:
Pictures
Click to enlarge
Report of the _G table on the left, tracking vars the right, and moving/showing frame info.
Click to enlarge
A display of a typical search report.
Massive
Massive Development Tool

Developed in the absence of other dev tools working when I needed them. There's a lot planned for the future (whenever that is). I am in the middle of working on SpartanUI v3.0, but will keep this updated as needed for me to continue my work. Massive has the following major debugging and development features...

Features:
• A debug report window (MassiveReport) and a variable tracking window (MassiveTracker: Tracks changes to variables)
• Inspect table trees and frame hierarchies simultaneously (be bold, try the _G table)
• Search for anything within the global table plus all its subtables and see all matches.
• Highlight a region and see the stats on it (as well as move it)
• Easily set CVars
• Reports which addon and function are the cause of an action blocked or forbidden.
• List the events currently registered to a frame.
• See a numerical index of what slots each item you're wearing is located in

If you want to utilize the debug functions in your mod, register with LibStub by using:
Code:
local dbg = LibStub:GetLibrary("Massive")
if (not dbg) then return; end
Slash Commands
/mass (or /massive)
obj NAME [depthLimit]: prints the hierarchies (regions and tables) of NAME to the report window. Optionally use depthLimit to limit the depth of the search. If none is provided, depthLimit is set to 4.
Failsafe exits printing out of report if time exceeds 15 seconds.

track VAR: tracks changes to VAR in tracker window (can be a CVar as well). VAR can be either a variable or a table of variables (will not track subtables or functions). Use "clear" or "erase" to clear the tracker window. If tracking a cvar, the defaults and min/max values will be shown as well.

find NAME [scope] [depthLimit]: Search for anything within the global table plus all its subtables and see all matches. Optionally, scope can be used to define where to begin the search and how deep to search. Optionally use depthLimit to limit the depth of the search. If scope is a number, depthlimit becomes the value of scope.

ilist: while tooltip is visible, will print out your person's equipped inventory and to what slots they're in.

event FRAME [eventname]: Reports what known events are registered to FRAME. Optionally, eventname can be used to test the frame for a particular event registration.

cvar VAR [SETTING]: VAR is the name of the CVar to set and SETTING is the value to set it to. If SETTING is omitted, variable returns to default value.

Debug Functions
MassiveReport:
dbg.print(msg[, id][, clear])
msg = the message to print to the report window
id = (number) color code (1=blue, 2=green, 3=red, 4=cyan, 5=orange, 6=Yellow, 7=Purple, 9=grey, 10=white)
clear = (boolean) erase previous message before printing


MassiveTracker:
dbg.track(var)
Checks tracked vars 10 times per second. To add new variables on the fly, use "/mass track varname" (can be a table too)
var = (string) variable/table to track


dbg.GetPoints(frame, anchor)
Retrieves the x & y of anchor on frame (something GetPoint(n) fails at... who wrote that anyway). Alternatively, you can retrieve all anchor coordinates by specifying "all" as the anchor (order: tl, t, tr, l, r, bl, b, br). Returns a list in each case.
frame = (string or table) the frame to retrieve info for
anchor = (string) the anchor point to retrieve coords for (ie., "TOPLEFT")


dbg.GetObject(stringpath)
Receives a string of either a var ("foo") or nested var ("table.subtable.foo") and returns the variable object
  Change Log - Massive
v.017
• Changed the font to a cleaner, smaller one
• Added new function for finding things in the global table. type "/mass find OBJECT" where OBJECT is the object to find. Further arguments SCOPE and DEPTHLIMIT can be used to define where to begin the search and how deep to search. If scope is a number, scope becomes the depthlimit.
• Added a new function for displaying regions, type "/mass show OBJECT" where object is the object to show. Displays the file hierarchy for that object, the anchoring information, x/y coordinates, dimensions, and effective-scale.
• Added key-bindings for moving frames. Movement is accelerated over time of key-pressed.
• Added key-binding for reloading the UI
• You can now type "/mass" for a list of slash commands.
• Updated FrameEvent function to search a frame for a particular events. "/mass event EVENTNAME"
• Updated ReportObject. It now traverses both table and object hierarchies without a hitch (this is a big one).
• CVars tracked in the tracker window now show the default and min/max values

v0.016
• Fixed a typo that prevented cvars from being reset


v0.015
• Now shows what events are registered to X frame. /mass event FRAMENAME
• Now sets (and forces updates to) CVars. /mass cvar VAR SETTING
• MassiveTracker now tracks CVars
• Tracker can be given a table and will track all trackable variables inside (no functions or subtables). /mass track table
• Syntax for tracker changed (JOB no longer required). If the variable doesn't exist, it adds it to the tracker. If it exists, it removes it from the tracker (works for table lists too). If you want to outright clear the tracker list use: /mass track clear (or erase)
• Added Yellow (6) and Purple (7) ids to Report window.
• TablePrint (ptable) and FramePrint (pframe) are now consolidated into the same function. Performance and code significantly improved. You can now give it any object (region or table) and it will display the full hierarchy to it (unless of course you set the depthLimit or exceed the failsafe timeout). Use: /mass obj OBJECT [depthLimit]
• Massive now generates its own event list which you can tap into. Be mindful, it collects new events as they happen so initially it won't know of any more than you encounter. Located in dbg.events
• If an addon is blocked or performs a forbidden action, it will be reported to the Report window with what addon called it and what function they were attempting to use.
  Comments - Massive
Post A Reply Comment Options
Old 12-04-2008, 05:24 PM  
kellewic
A Defias Bandit
 
kellewic's Avatar
Premium Member
Interface Author - Click to view interfaces

Forum posts: 2
File comments: 110
Uploads: 2
Great mod

I just found this the other day, and I must say it is quite awesome

Saves me a ton of time debugging. Great job!
__________________
Kellewic - 80 Warlock - Ghostlands
kellewic is offline Report comment to moderator   Edit/Delete Message Reply With Quote
Post A Reply



Category Jump:




The Network:
EQInterface | EQ2Interface | LoTROInterface | MMOInterface | War.MMOUI | WoWInterface | VGInterface | Allakhazam | Thottbot | Wowhead | Zam


©2009 MMOUI / ZAM Network
vBulletin - Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.