Developer forums (C::B DEVELOPMENT STRICTLY!) > Plugins development

Suggest on the debugger plugin

(1/6) > >>

ollydbg:
I haven't tested the debugger branch. so, I'm sorry if it is already exist.

See the image below:


Is it possible to show the EIP Pointer on the Disassembly windows, so that the user can understand which is the next instruction.

By the way, I'm debugging ptest project(in the CCbranch), i found that one wxString can not show correctly, see the image :


It seems gdb can not show a empty wxString correctly. Any ideas?

thanks.

ollydbg:
Things becomes more wired, see the screen shot, I just create another wxString ,but it seems only one wxString works fine...



I don't know why, it is too strange...

ollydbg:
I just check the DWARF information in the parserthread.o

by using:


--- Code: ---objdump -W parserthread.o >> aaaa.txt
--- End code ---

Then I have found that there are two entries for templateArgument in the debug information.

The source code is like:

--- Code: ---wxString ParserThread::ReadAncestorList()
{


    wxString ccc;
    wxString templateArgument;
    wxString aaa;
    aaa = m_Tokenizer.GetToken(); // eat ":"
    templateArgument = aaa;
    while (!TestDestroy())
    {

        //Peek the next token
        wxString next = m_Tokenizer.PeekToken();

        if (next.IsEmpty()
            || next==ParserConsts::opbrace
            || next==ParserConsts::semicolon ) // here, we are at the end of ancestor list
        {
            break;
        }
        else if (next==ParserConsts::lt)       // class AAA : BBB < int, float >
        {
            wxString arg = SkipAngleBraces();
            if(!arg.IsEmpty())                 // find a matching <>
            {
                templateArgument<<arg;
            }
            else
            {
                TRACE(_T("Not Matching <> find. Error!!!") );
            }
        }

                //check the returned Token is a simple Macro usage
        wxString tmp = GetClassFromMacro(m_Tokenizer.GetToken());

        //Handle Current token first
        //Skip the public, protected and private keyword, we don't care them
        if (tmp==ParserConsts::kw_public
            ||tmp==ParserConsts::kw_protected
            ||tmp==ParserConsts::kw_private   )
        {
            continue;
        }
        else
        {
            templateArgument<<tmp;
        }

    }

    TRACE(_T("ReadAncestorList() : Ancestors: ") + templateArgument);
    return templateArgument;
}


--- End code ---
Then you can see, there is only one entry for wxString aaa, but two entry for wxString templateArgument.





Is it possible a bug in GCC?

I have just tested in TDM GCC 4.5 and Loaden GCC 4.4.4.

Both of them has bad information about "wxString templateArgument".

Any suggestions?

Thanks.


Edit:

It seems some thing related to "return variables", because when I use "aaa" as a return variable, then, the wxString aaa shows badly, at this time, the wxString templateArgument shows correctly.

see the image:

oBFusCATed:
I think, I've seen the marker of the EIP Pointer in the disassembly window, but I remember that others were complaining too.
Can you check the debuggers branch and report back?

ollydbg:

--- Quote from: oBFusCATed on July 09, 2010, 09:14:47 am ---I think, I've seen the marker of the EIP Pointer in the disassembly window, but I remember that others were complaining too.
Can you check the debuggers branch and report back?

--- End quote ---

I just tested, and there is not EIP pointer in debugger branch.

Navigation

[0] Message Index

[#] Next page

Go to full version