6

When I debug an application inside the IDA Debugger, sometimes I get referenced to a .debugxxx segment.

What are those segment ? Heap allocations ?

If so, why are they called .debug ?

Also, even if I stop the debugger at the entrypoint of my application, there are already 3 or 4 .debug segments, at the beginning and at the end of the address space.

What type of data do they contain ?

I'm sorry for this post, but I could not find any concrete information anywhere else. It has already been asked here, but I don't find that the replies were anwsering the question in the title.

Thanks !

4

Generally, these are allocated regions within a debugged process. Some are heap related, some are internal to the OS's implementation, some can be pages allocated by another process that interacts with yours. They are there because IDA needs to provide you with an interface to view memory as it's actually laid-out in memory, just like any other debugger.

Integrating them with IDA's built-in segments facilities makes it easier to work with other components and third party plugins.

They are dubbed .debug??? because these segments are part of the executable's debug environment. The numbers are just sequential and have no real meaning.

P.S. A hint about those: IDA doesn't maintain them constantly updated, and you might sometime require IDA to rescan the memory of the debugged process to make sure your viewing the most recent memory snapshot. At least that was the case around IDA 6.6, it might have changed.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.