Mail:  Username:  Password:   Help | Sign Up
Search: 

Star Tool
by AOL

What Is This Atom Trace Thing, Anyway?

An atom trace catches the stream of information exchanged between the AOL user (client) and the AOL service (host). The tool for doing this is called the "debugger" or "trace tool." The purpose of doing an atom trace is to find out what data is exchanged between host and client, and has some very specific pieces of information that are useful in creating & testing forms and host processes. One of the most useful things you can get from an atom trace is the GID of a form that is being delivered to the user's screen. This document will explain how to set up a master tool, aka 'star tool,' and tell you how to get the GID of a form from an atom trace.

The basic idea behind the trace tool is that you can "see" what is going on between your client and the host, which is otherwise invisible to the user. The users, for instance, don't know that every single screen name in the buddy list is refreshed when the list updates - it looks like only the changes are updated there.

Some of the other uses of atom traces are:

  • Determining what kind of information is sent up from the user to the host. Example: If you invoke the Keyword form, and type in a keyword, then click the Go button, the atom trace can tell you what token is assigned to the Go button, and if any other information is sent up along with the keyword you typed in.
  • Identifying the information servers are sending down to the client. Example: In parental controls, the buttons on the main edit screen have no actions assigned in form_edit. The server is supplying the button actions, and if you trace the form as it is being rendered to the user, you will see what action types, tokens, and arguments are being assigned to the buttons on that form.
  • Sorting out errors in the display of forms. Example: You sign on with a Kids Only account, and the toolbar doesn't render completely - it's half blank. If you do a trace as you're signing on, you might see that the toolbar is trying to write to relative ID 253 when it stops. If you told the IMD that, he would immediately check the welcome screen form for RID 253, and see that it wasn't in there - then you'd know that the toolbar was incomplete because a call was being made to a relative ID that doesn't exist.
  • Getting the GID of a form. Example: You are testing a QAR, and you find a bug. You quickly run a trace while loading up the form that's having the problem, and you identify the form as GID 41-29343. You include this information in the bug report, and the IMD is able to fix it faster because he already knows going in which form is having a problem. This helps to eliminate ambiguity about which form is being described in a bug.

Installing A Master Tool

To do an atom trace, you will need to install the master tool in your AOL or CompuServe client. There are some files you need to add to your AOL or CS directory to allow the tool to work. In your main software directory (eg: c:\aol_50\), you need:

Atoms.bin
Atomdbug.cfg
Atoms.ada

And in your tools directory (eg: c:\aol_50 ools\), you need:

Master.tol

A note about this file: It's the same file between most versions of AOL and CompuServe software, but there is a slight difference in what you name the file. For AOL 4.0, it's master.tol, for AOL 5.0 it's master.aol, and for CompuServe, it's master.cs.

I've found it's handy to keep a "master tool install" directory on my computer in the root (C:\master_install\) and then whenever I have a new copy of AOL or CSI that needs a master tool, I can simply copy the files over to the correct directories. In that same directory, I keep copies of the following files, which should come with your AOL or CSI software, but if they're not in there, the master tool won't work:

Ada.bin
Ada32.dll

If your AOL or CSI software is open when you copy these files over, you will need to relaunch it. If it's closed while you're moving files, simply launch the software, and you will see the asterisk (*) menu to the left of the File menu in the toolbar.

Starting A Trace

Now you're ready to do a trace. To start a trace, click on the * menu and scroll down until you see the item Atomic Debugger. Select this, and it will open the trace tool application.

To start a trace, select New on the File menu, then select the Setup menu. That will bring up the floating toolbar ("Settings") that you see in the picture above. Set up the conditions in your AOL or CSI software so that you are ready to trace before clicking in the Atoms Trace checkbox on the floating Setting toolbar. When you are all set, turn on the trace with the Atoms Trace checkbox, then flip back over to AOL or CSI and execute the action you are trying to trace.

For example, if you want to find out what form is invoked when you click the Setup button on your buddy list, you want to close all other windows, start your trace, and then click that button. Once you've clicked the button, you want to turn the trace off, to avoid getting unnecessary information in the trace.

One thing you want to keep in mind when you are tracing is that ANY communication between the host and client will be tracked during a trace. Therefore, if you are running a trace when your buddy list updates, you will see all the atoms for that in your trace window.

Once you've got your trace, you need to look in it to find the information you want. This can be a little daunting, because there is a LOT of information there, and locating the one single line you need is almost a needle in the haystack proposition. There are, however, a couple of tricks you can use to help make it fast and easy to locate your info.

The most common thing you'll probably be looking for is a GID. The GID of a form is generally going to be indicated in the first 10 lines of atoms that define the form. So, in order to locate your GID, you need to find the start of the form in your trace. The other thing that normally appears near the beginning of a form is the window title. So, you can search your trace for the window title text. Often, the GID of the form will appear somewhere in the lines close to that in the trace. When the title is assigned in form_edit, the GID will appear AFTER the title, in the trace. When the server is filling in the window title, the GID will appear BEFORE the title in the trace.

In the sample trace below, I started my trace and then invoked the keyword form, using ctrl + k. To find the GID in the trace, I did a find on "Keyword," which is the title of the window:

uni_start_stream <00x>
    man_close_update <32-5721>
    man_start_object 		ß this is the window title
      mat_style_id <40-5792>				ß this is the style ID
      mat_orientation 
      mat_color_face <255, 251, 240>
      mat_object_id <32-5721>				ß this is the GID of the form
      act_set_criterion <11>
      act_replace_action

You can see in the sample trace where the window title appears, and then the GID is 5 lines after that. You have to be wary of the style ID, because it does NOT indicate the GID of the form!

Once you get comfortable doing traces, you will be able to scan the trace visually to look for clues as to which part of the stream you're looking at, and know from that whether you need to scroll up or down to find it. However - that's that advanced technique, and will take some time to get that good. Until then, you're likely to get a few headaches trying to read these things!

Practice a little bit finding the GIDs of forms you're working with.

Next Page - Tokens>>


Articles
| Documents | Tools | FDO | Atoms | Tokens | Security Breaches

© 2000 BMB and Tau Productions. Contacts: BMB | Tau | Rob