tools/runonphone/symbianutils/trkutils.h
changeset 33 3e2da88830cd
parent 30 5dc02b23752f
equal deleted inserted replaced
30:5dc02b23752f 33:3e2da88830cd
    54 QT_END_NAMESPACE
    54 QT_END_NAMESPACE
    55 
    55 
    56 namespace trk {
    56 namespace trk {
    57 
    57 
    58 typedef unsigned char byte;
    58 typedef unsigned char byte;
       
    59 struct TrkResult;
    59 
    60 
    60 enum Command {
    61 enum Command {
    61     //meta commands
    62     //meta commands
    62     TrkPing = 0x00,
    63     TrkPing = 0x00,
    63     TrkConnect = 0x01,
    64     TrkConnect = 0x01,
   133     TrkDSOpenFile = 0xd2,
   134     TrkDSOpenFile = 0xd2,
   134     TrkDSCloseFile = 0xd3,
   135     TrkDSCloseFile = 0xd3,
   135     TrkDSPositionFile = 0xd4
   136     TrkDSPositionFile = 0xd4
   136 };
   137 };
   137 
   138 
       
   139 enum DSOSItemTypes {
       
   140     kDSOSProcessItem = 0x0000,
       
   141     kDSOSThreadItem = 0x0001,
       
   142     kDSOSDLLItem = 0x0002,
       
   143     kDSOSAppItem = 0x0003,
       
   144     kDSOSMemBlockItem = 0x0004,
       
   145     kDSOSProcAttachItem = 0x0005,
       
   146     kDSOSThreadAttachItem = 0x0006,
       
   147     kDSOSProcAttach2Item = 0x0007,
       
   148     kDSOSProcRunItem = 0x0008,
       
   149     /* 0x0009 - 0x00ff reserved for general expansion */
       
   150     /* 0x0100 - 0xffff available for target-specific use */
       
   151 };
       
   152 
   138 enum SerialMultiplexor {
   153 enum SerialMultiplexor {
   139     MuxRaw = 0,
   154     MuxRaw = 0,
   140     MuxTextTrace = 0x0102,
   155     MuxTextTrace = 0x0102,
   141     MuxTrk = 0x0190
   156     MuxTrk = 0x0190
   142 };
   157 };
   162 SYMBIANUTILS_EXPORT void appendInt(QByteArray *ba, uint i, Endianness = TargetByteOrder);
   177 SYMBIANUTILS_EXPORT void appendInt(QByteArray *ba, uint i, Endianness = TargetByteOrder);
   163 SYMBIANUTILS_EXPORT void appendString(QByteArray *ba, const QByteArray &str, Endianness = TargetByteOrder, bool appendNullTerminator = true);
   178 SYMBIANUTILS_EXPORT void appendString(QByteArray *ba, const QByteArray &str, Endianness = TargetByteOrder, bool appendNullTerminator = true);
   164 
   179 
   165 struct SYMBIANUTILS_EXPORT Library
   180 struct SYMBIANUTILS_EXPORT Library
   166 {
   181 {
   167     Library() {}
   182     Library();
       
   183     explicit Library(const TrkResult &r);
   168 
   184 
   169     QByteArray name;
   185     QByteArray name;
   170     uint codeseg;
   186     uint codeseg;
   171     uint dataseg;
   187     uint dataseg;
       
   188      //library addresses are valid for a given process (depending on memory model, they might be loaded at the same address in all processes or not)
       
   189     uint pid;
   172 };
   190 };
   173 
   191 
   174 struct SYMBIANUTILS_EXPORT TrkAppVersion
   192 struct SYMBIANUTILS_EXPORT TrkAppVersion
   175 {
   193 {
   176     TrkAppVersion();
   194     TrkAppVersion();
   185 struct SYMBIANUTILS_EXPORT Session
   203 struct SYMBIANUTILS_EXPORT Session
   186 {
   204 {
   187     Session();
   205     Session();
   188     void reset();
   206     void reset();
   189     QString deviceDescription(unsigned verbose) const;
   207     QString deviceDescription(unsigned verbose) const;
       
   208     QString toString() const;
       
   209     // Answer to qXfer::libraries
       
   210     QByteArray gdbLibraryList() const;
       
   211     // Answer to qsDllInfo, can be sent chunk-wise.
       
   212     QByteArray gdbQsDllInfo(int start = 0, int count = -1) const;
   190 
   213 
   191     // Trk feedback
   214     // Trk feedback
   192     byte cpuMajor;
   215     byte cpuMajor;
   193     byte cpuMinor;
   216     byte cpuMinor;
   194     byte bigEndian;
   217     byte bigEndian;
   196     byte fpTypeSize;
   219     byte fpTypeSize;
   197     byte extended1TypeSize;
   220     byte extended1TypeSize;
   198     byte extended2TypeSize;
   221     byte extended2TypeSize;
   199     TrkAppVersion trkAppVersion;
   222     TrkAppVersion trkAppVersion;
   200     uint pid;
   223     uint pid;
       
   224     uint mainTid;
   201     uint tid;
   225     uint tid;
   202     uint codeseg;
   226     uint codeseg;
   203     uint dataseg;
   227     uint dataseg;
   204     QHash<uint, uint> addressToBP;
   228     QHash<uint, uint> addressToBP;
   205 
   229 
   206     typedef QList<Library> Libraries;
   230     typedef QList<Library> Libraries;
   207     Libraries libraries;
   231     Libraries libraries;
   208 
   232 
   209     typedef uint Thread;
       
   210     typedef QList<Thread> Threads;
       
   211     Threads threads;
       
   212 
       
   213     // Gdb request
   233     // Gdb request
   214     uint currentThread;
       
   215     QStringList modules;
   234     QStringList modules;
   216 };
   235 };
   217 
   236 
   218 struct SYMBIANUTILS_EXPORT TrkResult
   237 struct SYMBIANUTILS_EXPORT TrkResult
   219 {
   238 {