Monday, 20 February 2012

Monitoring Global Atom Table part II

Atom table monitor is now available on google code. Atom table is an important resource to take into account when developing win32/win64 applications as if the table gets depleted a "System Error. Code: 8. Not enough storage is available to process this command" would be returned leaving the system in an unresponsive / unstable state. This issue only happens under Windows Vista / 7 / Server 2008, so it is crucial to avoid leaking atoms. There is a very interesting article (Identifying atom leaks) from Microsoft debug team which actually shows the way to monitor the atom entries by debugging the kernel. In the first part of this article (Monitoring Global Atom Table part I) I had delved into detail by debugging the kernel and explaining how to display different atom entries. In that post I released alpha version of "Atom table monitor" which I have seen it is wrong as it shares the same memory area for global atom table and registerwindowmessage table. In this new version (v1.2) both tables are displayed into separate memory grids:

Global atom table:

RegisterWindowMessage table:

Display list of entries:

Matching string patterns:

Counters:

Testing screen:

3 comments:

  1. Hello Friends.........

    Great information.Thanks for sharing this useful information with all of us.Keep sharing

    more in the future.

    Have a nice time ahead.

    Thanks

    ReplyDelete
  2. Thank you very much for posting the base for accessing the Global Atom Table on GitHub. We're having Production problems where three apps seem to be leaking and that code is very helpful.

    One request, though. This page says the code is available on Google Code. But Google Code says the project is now available on GitHub. And the project on GitHub does not include the window content shown on this page. It doesn't contain any analysis window content at all; just the service code to access the table and write the atoms to a file. That makes it far less useful to troubleshoot atom leaks.

    Please consider posting the code with the analysis window content shown on this page.

    Either way, thanks for a great read and excellent information!

    Thanks again,
    -Bob

    ReplyDelete
    Replies
    1. Hi Bob,

      You can find the application under my releases on Github. https://github.com/JordiCorbilla/atom-table-monitor/releases in there you'll be able to install the app and the service and check exactly the same as you can see here.

      Cheers,
      Jordi

      Delete