|
|
Home » U++ TheIDE » U++ TheIDE: Other Features Wishlist and/or Bugs » Unability to debug
Unability to debug [message #40597] |
Tue, 20 August 2013 12:26 |
Wlad
Messages: 20 Registered: February 2010 Location: Ukraine, KharkOv
|
Promising Member |
|
|
I did not use U++ aprox 1.5 years.
Now I tried to install several builds: stable version (5485) and last nightly builds...
My system was not changed. XP SP3.
But earlier they worked in debugging project very nice.
Now I obtain GPF just after starting in Debug Mode or IDE is trying to show something like grey pannel beneath to editor panel, shows register panel to the right of editor panel. ANd that's all. Process Dispetcher shows that gdb is working and wait something.
I have tried to setup several MinGWs (TDM-GCC-4.7.1-2, from Qt sdk, WxPack and gcc from wxWidgets installation) - the result remains the same.
Do anibody have the same sad picture?
And if yes then how to get well-working IDE?
[Updated on: Tue, 20 August 2013 12:30] Report message to a moderator
|
|
|
Re: Unability to debug [message #40598 is a reply to message #40597] |
Tue, 20 August 2013 12:55 |
|
Welcome back Wlad
I'm not sure how it is on windows, but theide gained new gdb frontend some time ago. Can you check what is set as "GDB Debugger interface" in Setup > Environment > IDE? Try experimenting with both values, I believe the legacy should work in any case...
Best regards,
Honza
|
|
|
|
|
|
Re: Unability to debug [message #40602 is a reply to message #40601] |
Tue, 20 August 2013 18:50 |
|
busiek wrote on Tue, 20 August 2013 11:20 | Because thread about debugger was raised, I have to confirm that there are some problems.
For me debugging using new interface is not usable. For GUI application showing backtrace (from drop list) lasts few minutes which makes it unusable to walk up or down through backtrace. I have to switch to legacy, but it is not convenient. It also seems to work fast enough for console applications. My environment is Ubuntu 13.04 64bit and the newest U++ from svn.
|
I can only confirm that. New debugger is very nice but very slow and crashes in mt apps from time to time. The best option so far is a legacy mode with MSVC.
|
|
|
|
|
|
|
Re: Unability to debug [message #41861 is a reply to message #41537] |
Fri, 31 January 2014 14:44 |
Shire
Messages: 41 Registered: September 2006 Location: Russia, Yamal peninsula
|
Member |
|
|
GDB_MI2 crashes when debugging by TheIDE built with MSC compiler.
(Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86, for me).
Debugger crashes at this harmless place:
uppsrc/ide/Builders/Gdb_MI2.cpp
MIValue Gdb_MI2::MICmd(const char *cmdLine)
{ // ...
return ReadGdb();
}
Return by value operation destructs MIValue instance. Let's see at MIValue class:
uppsrc/ide/Builders/MIValue.h
MIValue &operator=(pick_ MIValue &v);
MIValue &operator=(String const &s);
MIValue(MIValue pick_ &v);
MIValue(String const &s);
operator String&() { return Get(); }
operator const String &() const { return Get(); }
After some debugging I found fundamental difference
uppsrc/Core/Defs.h
#ifdef COMPILER_MSC
#define pick_
#else
#define pick_ const
#endif
Smart Microsoft compiler, when it can not find copy constructor of MIValue (because _pick is not const), copies instance via const String& conversion:
return MIValue((const String&)ReadGdb());
May be, this method was preferred by compiler because constantness of returning operator. Solution is make String& constuctor explicit and replace operator= with Set(String&) method. Patch is attached.
Such compiler behavior causes floating bugs. I mean this cause must be at "Pick behavior explained" article.
-
Attachment: gdb_fix.diff
(Size: 1.91KB, Downloaded 251 times)
[Updated on: Fri, 31 January 2014 14:45] Report message to a moderator
|
|
|
Goto Forum:
Current Time: Sun Jun 16 16:42:07 CEST 2024
Total time taken to generate the page: 0.02533 seconds
|
|
|