[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-debug-dev] Proposed changes on the symbols handling in the CDT debugger
|
The attached document contains the proposals on how
to improve the module presentation and the symbols handling in the
debugger.
Thanks,
Mikhail Khodjaiants
QNX Software Systems
Ltd.
|
Attachment:
Modules.doc
Description: MS-Word document
Proposed changes on the module presentation in the CDT debugger
Problem:
Currently the CDT debugger loads the symbol table of the main program automatically
using the executable file to obtain symbols. The same applies to the symbols loading of shared libraries. There is no option to load symbols from the file different than executable or shared library file.
Solution:
Replace the Shared Libraries view by the Modules view. The Modules view displays all modules loaded by the process. Add the "Load Symbols From File" action to the module context menu.
Design:
The "ICDIModule" interface
The following interface should be added to the CDI model.
/**
* Represents a module loaded into a debug process.
*/
public interface ICDIModule extends ICDIObject {
/**
* Returns the name of the module. May or may not contain a full path.
*
* @return the module name
*/
String getName();
/**
* Returns the base virtual address where the module is loaded.
*
* @return the base virtual address where the module is loaded
*/
long getBaseAddress(); // the "long" type should replaced by the new address type to support 64-bit addresses.
/**
* Returns the size of the module.
*
* @return the module size
*/
long getSize();
/**
* Returns whether the symbol table of this module is loaded.
*
* @return whether the symbol table of this module is loaded
*/
boolean areSymbolsLoaded();
/**
* Loads the symbol table of this module from the file specified
* by the module name.
*
* @throws CDIException if this method fails. Reasons include:
*/
void loadSymbols() throws CDIException;
/**
* Load the symbol table of this module from the specified symbol file.
*
* @param symbolFileName the name of the symbol file
* @throws CDIException if this method fails. Reasons include:
*/
void loadSymbols( String symbolFileName ) throws CDIException;
}
The "ICDISharedLibrary" interface should be defined as an extension of "ICDIModule".
The "getModules" method should be added to the "ICDITarget" interface. This method returns list of modules loaded into the target.