Changeset 740 in dev for trunk/ab5.0


Ignore:
Timestamp:
Sep 6, 2008, 11:53:33 PM (16 years ago)
Author:
dai
Message:

ppobj_dsを、debugSectionsに書き直した。

Location:
trunk/ab5.0/abdev/BasicCompiler_Common
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/BasicCompiler_Common/CDebugThreadInfo.cpp

    r636 r740  
    2727
    2828    DWORD dwRWSectionPos;
    29     dwRWSectionPos=pobj_DBDebugSection->ppobj_ds[0]->dwImageBase+
    30                         pobj_DBDebugSection->ppobj_ds[0]->dwRVA_RWSection;
     29    dwRWSectionPos=pobj_DBDebugSection->debugSections[0]->dwImageBase+
     30                        pobj_DBDebugSection->debugSections[0]->dwRVA_RWSection;
    3131
    3232    ReadProcessMemory(hDebugProcess,
     
    8080    extern DWORD ImageBase;
    8181    if((HMODULE)(ULONG_PTR)ImageBase!=hTargetModule){
    82         for(i=0;i<pobj_DBDebugSection->num;i++){
    83             if((HMODULE)(ULONG_PTR)pobj_DBDebugSection->ppobj_ds[i]->dwImageBase==hTargetModule){
     82        for(i=0;i<pobj_DBDebugSection->debugSections.size();i++){
     83            if((HMODULE)(ULONG_PTR)pobj_DBDebugSection->debugSections[i]->dwImageBase==hTargetModule){
    8484                pobj_DBDebugSection->choice(i);
    8585                break;
  • trunk/ab5.0/abdev/BasicCompiler_Common/Debug.cpp

    r648 r740  
    338338}
    339339
    340 void Set_DebugSys_dwThreadID(){
    341     int i;
    342     for(i=0;i<pobj_DBDebugSection->num;i++){
     340void Set_DebugSys_dwThreadID()
     341{
     342    BOOST_FOREACH( CDebugSection *pDebugSection, pobj_DBDebugSection->debugSections )
     343    {
    343344        ULONG_PTR lpAccBytes;
    344345        WriteProcessMemory(hDebugProcess,
    345             (void *)(ULONG_PTR)(pobj_DBDebugSection->ppobj_ds[i]->dwImageBase + pobj_DBDebugSection->ppobj_ds[i]->dwRVA_RWSection),
     346            (void *)(ULONG_PTR)(pDebugSection->dwImageBase + pDebugSection->dwRVA_RWSection),
    346347            _DebugSys_dwThreadID,
    347348            sizeof(DWORD)*MAX_DEBUG_THREAD,
  • trunk/ab5.0/abdev/BasicCompiler_Common/DebugMiddleFile.cpp

    r637 r740  
    437437
    438438
    439 CDBDebugSection::CDBDebugSection(){
    440     ppobj_ds=(CDebugSection **)HeapAlloc(hHeap,0,1);
    441     num=0;
    442 }
    443 CDBDebugSection::~CDBDebugSection(){
    444     int i;
    445     for(i=0;i<num;i++){
    446         delete ppobj_ds[i];
    447     }
    448     HeapDefaultFree(ppobj_ds);
     439CDBDebugSection::CDBDebugSection()
     440{
     441}
     442CDBDebugSection::~CDBDebugSection()
     443{
     444    BOOST_FOREACH( CDebugSection *pDebugSection, debugSections )
     445    {
     446        delete pDebugSection;
     447    }
     448    debugSections.clear();
    449449}
    450450
     
    458458    }
    459459
    460     ppobj_ds=(CDebugSection **)HeapReAlloc(hHeap,0,ppobj_ds,(num+1)*sizeof(CDebugSection *));
    461     ppobj_ds[num]=pobj_d;
    462     num++;
     460    debugSections.push_back( pobj_d );
    463461
    464462    return 1;
     
    466464
    467465void CDBDebugSection::del(HMODULE hModule){
    468     int i;
    469     for(i=0;i<num;i++){
    470         if((HMODULE)(ULONG_PTR)ppobj_ds[i]->dwImageBase==hModule){
    471             delete ppobj_ds[i];
    472 
    473             num--;
    474             for(;i<num;i++){
    475                 ppobj_ds[i]=ppobj_ds[i+1];
    476             }
     466    for( int i=0; i<static_cast<int>(this->debugSections.size()); i++ )
     467    {
     468        if( (HMODULE)(ULONG_PTR)this->debugSections[i]->dwImageBase == hModule )
     469        {
     470            delete debugSections[i];
     471            Jenga::Common::EraseVectorItem<std::vector<CDebugSection *>>( debugSections, i );
    477472            break;
    478473        }
     
    480475}
    481476
    482 void CDBDebugSection::choice(int index){
    483     pobj_now=ppobj_ds[index];
     477void CDBDebugSection::choice( int index )
     478{
     479    pobj_now = debugSections[index];
    484480    pobj_now->choice();
    485481}
  • trunk/ab5.0/abdev/BasicCompiler_Common/DebugSection.h

    r636 r740  
    8181class CDBDebugSection{
    8282public:
    83     CDebugSection **ppobj_ds;
    84     int num;
     83    std::vector<CDebugSection *> debugSections;
    8584
    8685    CDebugSection *pobj_now;
Note: See TracChangeset for help on using the changeset viewer.