Developer forums (C::B DEVELOPMENT STRICTLY!) > Development
Splitting debugger in two - specific debugger and common GUI
Jenna:
One annoying thing I found:
if "build to ensure, that project is up to date" is checked, the build-process can not be interrupted if it has started.
In trunk this is still possible.
oBFusCATed:
I know, I have it in the to-do.
This http://smrt.is-a-geek.org/codeblocks/TODO is the full to-do if someone is interested :)
ollydbg:
--- Quote from: oBFusCATed on August 11, 2011, 05:07:17 pm ---
--- Quote from: ollydbg on August 11, 2011, 04:37:35 pm ---Compare with my last patch: my last patch
it seem you did not use "GDBTipWindowView" or "GDBTipWindow" to show the tip?
--- End quote ---
No, I don't :)
See the ValueTooltip class.
--- End quote ---
Thanks, I found it, it was in parsing the gdb command output, here:
--- Code: ---/**
* Command to display a tooltip about a variables value.
*/
class GdbCmd_TooltipEvaluation : public DebuggerCmd
{
wxRect m_WinRect;
wxString m_What;
wxString m_Type;
wxString m_Address;
wxString m_ParseFunc;
public:
/** @param what The variable to evaluate.
@param win A pointer to the tip window pointer.
@param tiprect The tip window's rect.
*/
GdbCmd_TooltipEvaluation(DebuggerDriver* driver, const wxString& what, const wxRect& tiprect, const wxString& w_type = wxEmptyString, const wxString& address = wxEmptyString)
: DebuggerCmd(driver),
m_WinRect(tiprect),
m_What(what),
m_Type(w_type),
m_Address(address)
{
m_Type.Trim(true);
m_Type.Trim(false);
m_Cmd = static_cast<GDB_driver*>(m_pDriver)->GetScriptedTypeCommand(w_type, m_ParseFunc);
if (m_Cmd.IsEmpty())
{
// if it's a pointer, automatically dereference it
if (w_type.Length() > 2 && // at least 2 chars
w_type.Last() == _T('*') && // last is *
w_type.GetChar(w_type.Length() - 2) != _T('*') && // second last is not * (i.e. doesn't end with **)
!w_type.Contains(_T("char "))) // not char* (special case)
{
m_What = wxT("*") + m_What;
}
m_Cmd << wxT("output ");
m_Cmd << m_What;
}
else
{
try
{
SqPlus::SquirrelFunction<wxString&> f(cbU2C(m_Cmd));
m_Cmd = f(w_type, what, 0, 0);
}
catch (SquirrelError e)
{
m_Cmd = cbC2U(e.desc);
m_pDriver->DebugLog(_T("Script exception: ") + m_Cmd);
}
}
}
void ParseOutput(const wxString& output)
{
wxString contents;
if (output.StartsWith(_T("No symbol ")) || output.StartsWith(_T("Attempt to ")))
contents = output;
else
{
if (!m_ParseFunc.IsEmpty())
{
try
{
SqPlus::SquirrelFunction<wxString&> f(cbU2C(m_ParseFunc));
contents << f(output, 0);
}
catch (SquirrelError e)
{
contents << cbC2U(e.desc);
m_pDriver->DebugLog(_T("Script exception: ") + contents);
}
}
else
{
contents << output;
// the following breaks the text when it *is* a hex number
// if (reGenericHexAddress.Matches(output))
// {
// contents.Replace(reGenericHexAddress.GetMatch(output, 1), _T(""));
// contents.Trim(false);
// }
}
}
contents.Trim(true);
contents.Trim(false);
GDBWatch::Pointer watch(new GDBWatch(m_What));
watch->SetType(m_Type);
ParseGDBWatchValue(*watch, contents);
if (Manager::Get()->GetDebuggerManager()->ShowValueTooltip(watch, m_WinRect))
{
watch->SetForTooltip(true);
m_pDriver->GetDebugger()->AddWatchNoUpdate(watch);
}
}
};
--- End code ---
--- Quote from: oBFusCATed on August 11, 2011, 11:07:39 pm ---I know, I have it in the to-do.
This http://smrt.is-a-geek.org/codeblocks/TODO is the full to-do if someone is interested :)
--- End quote ---
too many todos.
about the python pretty printer, the latest cvs version of GDB has supply some command like:
"info pretty-printer" to show the installed pretty printers.
"enable/disable pretty-printer" to enable/disable this feature.
These feature can be added when you have some gdb's own pretty-printer utilities scripts in share/gdb folder (I only tested under MinGW).
ollydbg:
a test patch(based on rev 7366 debugger branch) to enable this feature(emulate a message when ctrl pressed when debugging)
need for testing :D
oBFusCATed:
--- Quote from: ollydbg on August 12, 2011, 03:37:33 am ---too many todos.
--- End quote ---
I'm adding more items, then removing 8)
--- Quote from: ollydbg on August 12, 2011, 08:59:56 am ---a test patch(based on rev 7366 debugger branch) to enable this feature(emulate a message when ctrl pressed when debugging)
need for testing :D
--- End quote ---
I'll test it on linux...
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version