On which svn version is it based ?- On the latest revision in the 12.11 branch.
Which TDM version is included for mingw windows version ?
It seems all exes/dlls have not been stripped the debug info.Yes, on purpose.
http://cb.biplab.in/mirror/12.11/
Why the name is not 12.12 ? ;DThe build date/SVN revision date counts, which you can see in the about dialog.
Why the name is not 12.12 ? ;DThe build date/SVN revision date counts, which you can see in the about dialog.
The rest of the company is stuck with vi and work in the linux console.This is because they are real/true developers :)
The rest of the company is stuck with vi and work in the linux console.This is because they are real/true developers :)
http://cb.biplab.in/mirror/12.11/
@ Admins,
1) Debian package links are wrong. Squeeze binary links are pointing to Wheezy binaries and vice versa.
2) Fedora 18-x86_64 release package link is broken. I'm getting a 404 error.
@ Admins,
1) Debian package links are wrong. Squeeze binary links are pointing to Wheezy binaries and vice versa.
2) Fedora 18-x86_64 release package link is broken. I'm getting a 404 error.
Fixed.
Thanks for reporting !
The berlios interface (or database) seems to be broken. Some files show multiple times with different sizes and are there, and a link for the fc18-x86_64 package was shown, but it was not there. Very weird ??? .
is it possible to have the old watches window in 12.11?Yes, switch to 10.05 and feel the misery of the old watches window.
Yes, switch to 10.05 and feel the misery of the old watches window.
come on! that's not a solution...Currently the only available solution. ;D
can anyone help me?Seems you downloaded a broken installer, because the download junk died. Just download again and maybe use another mirror.
i did download it like 5 times from another this forum link but it still doesn't work and want mirror? i can't see anyBerliOS is heavily under load, currently, also, its automatic mirror solution with SourceForge seems broken. Please try to use the mirrors as stated here:
jens i tried both none work ( you're one is "broken")Would you please be more patient!
and Morten i olny have windows so i cant use any
[...]
This folder has no files.
...is about to be prepared and ready in the evening. (Uploads there take looooong times for me, but downloads will be fast as usual).
sorry my english is not good... i couldnt understand thatNo Problem. I'll report here, when I am ready... its a monkey job...
but this is 10.5 without mingwOh dear... yes, the link on the frontpage points to the file mostly down-loaded, but there are also others, you know... Just click on "Files" and download what you need. Its the same with every project on sourceforge.
What version of Ubuntu ?
Great job for this event. Did not come here since some times, but I just started this new version... Did not remember the upgrade, but when I saw the new...erm, logo, it jumped in my eyes ^^
At least it is quite uncommon :D
I tried several nighty, then RC1 then the final build and elements I disliked became more and more visible.Why didn't you post it before the release ?
I've no problem with changes, but I want them to go in the right direction, here is a short list of what I think isn't (but I won't go against what has been decided by core developers.
7- UX: when the cursor is on a tile name at the bottom of the screen (dbg, search and compilation results,...) and I slide, tiles change very quickly when I highly probably simply want to slide some code. Maybe a pref for that?I don't understand what you mean, can you please try to explain in other words, probably with a step-by-step explanation how to get the issue ?
5- Syntax color: well, there was A LOT of improvements in this section (:D) but also several weird bugs: the _WIN32 flag, defined at compile time is ignored in the #ifdef in the editor.This should actually work... what are your settings in Settings->Editor...->C/C++ Editor settings?
PS: ICC support seems broken under both 10.05 and 12.11, on 12.11, the error message is that it doesn't find VS in the path.I can work on this, however, I do not own ICC; is there a trial/free version of it?
Why didn't you post it before the release ?Because I thought that the developpement was focused on features and those issues would be fixed later as several of them were fixed in the RC.
I don't understand what you mean, can you please try to explain in other words, probably with a step-by-step explanation how to get the issue ?Put your cursor on the panel at the bottom where compiler is logged, global search results are displayed & co.
This should actually work... what are your settings in Settings->Editor...->C/C++ Editor settings?https://dl.dropbox.com/u/12087072/Syntaxical%20color.png << The bug just disappeared u_u
(Correctly) parsing defines from #included files is significantly more difficult than it may first sound, and is currently not supported.
I can work on this, however, I do not own ICC; is there a trial/free version of it?Intel give free licence for students http://software.intel.com/en-us/intel-education-offerings
That's intended behaviour and it is not so unususal.I don't understand what you mean, can you please try to explain in other words, probably with a step-by-step explanation how to get the issue ?Put your cursor on the panel at the bottom where compiler is logged, global search results are displayed & co.
Put the cursor on a tile, that contain the name of the panel (ex: "build log", "search result") then roll the mouse.
You'll see tiles change really quickly in a unsuable way.
Okay, probably usefull on a Desktop but with a laptop pad, it's way too fast.That's intended behaviour and it is not so unususal.I don't understand what you mean, can you please try to explain in other words, probably with a step-by-step explanation how to get the issue ?Put your cursor on the panel at the bottom where compiler is logged, global search results are displayed & co.
Put the cursor on a tile, that contain the name of the panel (ex: "build log", "search result") then roll the mouse.
You'll see tiles change really quickly in a unsuable way.
Nevertheless, you can switch it off by unchecking "Settings -> Environment -> Notebooks appearance -> Enable scrolling with mousewheel".
Works fine on my laptop, with mouse or touchpad.Okay, probably usefull on a Desktop but with a laptop pad, it's way too fast.That's intended behaviour and it is not so unususal.I don't understand what you mean, can you please try to explain in other words, probably with a step-by-step explanation how to get the issue ?Put your cursor on the panel at the bottom where compiler is logged, global search results are displayed & co.
Put the cursor on a tile, that contain the name of the panel (ex: "build log", "search result") then roll the mouse.
You'll see tiles change really quickly in a unsuable way.
Nevertheless, you can switch it off by unchecking "Settings -> Environment -> Notebooks appearance -> Enable scrolling with mousewheel".
Thanks for the advice =)
1- Watches window: no more a list of variable of the current function: well, I deal with some quite big functions with over 50 variables. To deal with so much, I've functions that modify a lot of them in the same time but as I don't want to read the whole function, with the old system, I'd to watch on what become red after the function, now, I'll have to add _every variable_ to the window, manually... Please, tell me there is a way to get them all easily, the new system seems to have a lot of things to show but without this, I can't do anything :(Search the forum...
2- build options: they are locked when the dbg is running but I don't understand why and there is way to access to it anyway (via project prefs)?I'll fix this some day...annoys me too.
3- can't run anymore a normal instance + one in the debugger, it was damn useful to study soft comportment when he wasn't alone to access to some resources.This sounds like a bug in the old version.
6- After a sigsev, the stack once hasn't been displayed. Maybe gdb failed at provide it but in this case, a message (ex: Stack unavailable) would be great.If you can provide the full log from your debug session (see the settings), I can look at it.
Sure but the reason we use IDE is to have a lot of tools just under our hand and it's one less =/3- can't run anymore a normal instance + one in the debugger, it was damn useful to study soft comportment when he wasn't alone to access to some resources.This sounds like a bug in the old version.
You can setup a tool to run your output executable.
I'll try to reproduce then send the log6- After a sigsev, the stack once hasn't been displayed. Maybe gdb failed at provide it but in this case, a message (ex: Stack unavailable) would be great.If you can provide the full log from your debug session (see the settings), I can look at it.
Sure but the reason we use IDE is to have a lot of tools just under our hand and it's one less =/I've told you how you can achieve the same thing...
PS: ICC support seems broken under both 10.05 and 12.11, on 12.11, the error message is that it doesn't find VS in the path.Could you apply this patch to see if it resolves the problem? (I am assuming that you do have MSVC installed.)
Index: src/plugins/compilergcc/compilerICC.cpp
===================================================================
--- src/plugins/compilergcc/compilerICC.cpp (revision 8724)
+++ src/plugins/compilergcc/compilerICC.cpp (working copy)
@@ -71,57 +71,62 @@
for (unsigned int which_msvc = 0; which_msvc < array_size(msvcIds); ++which_msvc)
{
Compiler* vcComp = CompilerFactory::GetCompiler(msvcIds[which_msvc]);
- if (vcComp)
+ if (!vcComp)
+ continue; // compiler not registered? try next one
+
+ wxString vcMasterNoMacros = vcComp->GetMasterPath();
+ Manager::Get()->GetMacrosManager()->ReplaceMacros(vcMasterNoMacros);
+ if ( !wxFileExists(vcMasterNoMacros + sep + wxT("bin") + sep + vcComp->GetPrograms().C)
+ && !wxFileExists(vcMasterNoMacros + sep + vcComp->GetPrograms().C) )
+ continue; // this MSVC is not installed; try next one
+
+ const wxString& vcMasterPath = vcComp->GetMasterPath();
+ if (m_ExtraPaths.Index(vcMasterPath) == wxNOT_FOUND)
+ m_ExtraPaths.Add(vcMasterPath);
+ if ( !vcMasterPath.EndsWith(wxT("bin"))
+ && m_ExtraPaths.Index(vcMasterPath + sep + wxT("bin")) == wxNOT_FOUND )
{
- if (vcComp->AutoDetectInstallationDir() == adrDetected)
+ m_ExtraPaths.Add(vcMasterPath + sep + wxT("bin"));
+ }
+ AddIncludeDir(vcMasterPath + _T("\\Include"));
+ AddLibDir(vcMasterPath + _T("\\Lib"));
+ AddResourceIncludeDir(vcMasterPath + _T("\\Include"));
+
+ const wxArrayString& vcExtraPaths = vcComp->GetExtraPaths();
+ for (size_t i = 0; i < vcExtraPaths.GetCount(); ++i)
+ {
+ if ( m_ExtraPaths.Index(vcExtraPaths[i]) == wxNOT_FOUND
+ && wxDirExists(vcExtraPaths[i]) )
{
- const wxString& vcMasterPath = vcComp->GetMasterPath();
- if (m_ExtraPaths.Index(vcMasterPath) == wxNOT_FOUND &&
- wxDirExists(vcMasterPath))
+ m_ExtraPaths.Add(vcExtraPaths[i]);
+ }
+ }
+ const wxArrayString& vcIncludeDirs = vcComp->GetIncludeDirs();
+ for (size_t i = 0; i < vcIncludeDirs.GetCount(); ++i)
+ {
+ if (wxDirExists(vcIncludeDirs[i]))
+ {
+ if (m_IncludeDirs.Index(vcIncludeDirs[i]) == wxNOT_FOUND)
{
- m_ExtraPaths.Add(vcMasterPath);
+ AddIncludeDir(vcIncludeDirs[i]);
}
- AddIncludeDir(vcMasterPath + _T("\\Include"));
- AddLibDir(vcMasterPath + _T("\\Lib"));
- AddResourceIncludeDir(vcMasterPath + _T("\\Include"));
-
- const wxArrayString& vcExtraPaths = vcComp->GetExtraPaths();
- for (size_t i = 0; i < vcExtraPaths.GetCount(); ++i)
+ if (m_ResIncludeDirs.Index(vcIncludeDirs[i]) == wxNOT_FOUND)
{
- if (m_ExtraPaths.Index(vcExtraPaths[i]) == wxNOT_FOUND &&
- wxDirExists(vcExtraPaths[i]))
- {
- m_ExtraPaths.Add(vcExtraPaths[i]);
- }
+ AddResourceIncludeDir(vcIncludeDirs[i]);
}
- const wxArrayString& vcIncludeDirs = vcComp->GetIncludeDirs();
- for (size_t i = 0; i < vcIncludeDirs.GetCount(); ++i)
- {
- if (wxDirExists(vcIncludeDirs[i]))
- {
- if (m_IncludeDirs.Index(vcIncludeDirs[i]) == wxNOT_FOUND)
- {
- AddIncludeDir(vcIncludeDirs[i]);
- }
- if (m_ResIncludeDirs.Index(vcIncludeDirs[i]) == wxNOT_FOUND)
- {
- AddResourceIncludeDir(vcIncludeDirs[i]);
- }
- }
- }
- const wxArrayString& vcLibDirs = vcComp->GetLibDirs();
- for (size_t i = 0; i < vcLibDirs.GetCount(); ++i)
- {
- if (m_LibDirs.Index(vcLibDirs[i]) == wxNOT_FOUND &&
- wxDirExists(vcLibDirs[i]))
- {
- AddLibDir(vcLibDirs[i]);
- }
- }
- msvcFound = true;
- break;
}
}
+ const wxArrayString& vcLibDirs = vcComp->GetLibDirs();
+ for (size_t i = 0; i < vcLibDirs.GetCount(); ++i)
+ {
+ if ( m_LibDirs.Index(vcLibDirs[i]) == wxNOT_FOUND
+ && wxDirExists(vcLibDirs[i]) )
+ {
+ AddLibDir(vcLibDirs[i]);
+ }
+ }
+ msvcFound = true;
+ break;
}
if (!msvcFound)
@@ -130,7 +135,6 @@
"This compiler requires MS compiler for proper functioning and\n"
"it may not work without it."),
_T("Error"), wxOK | wxICON_ERROR);
-
}
}
}
Sure but the reason we use IDE is to have a lot of tools just under our hand and it's one less =/What you may fail to understand is that oBFusCATed suggested you setup a generic tool using macros in the IDE which you can use on all of your projects to achieve what you want. I've done the same, its vital for some pieces of software. The command is a one-liner, and is attached as "Tool" to C::B but actually starts your currently active target's executable detached (as an example, if you like it that way).
PS: ICC support seems broken under both 10.05 and 12.11, on 12.11, the error message is that it doesn't find VS in the path.Could you apply this patch to see if it resolves the problem? (I am assuming that you do have MSVC installed.)
I tried to compile it with the source code of the 12.11 version but the plugin fail at load =/Did you compile only the plugin, or the whole program?
MinGW (a quite recent version [...]What version exactly? Also, SJLJ or DW2?
Only the plugin.I tried to compile it with the source code of the 12.11 version but the plugin fail at load =/Did you compile only the plugin, or the whole program?
It seems to be GCC 4.7.2, and as I didn't saw any mention of those acronyms, I guess it's SJLJMinGW (a quite recent version [...]What version exactly? Also, SJLJ or DW2?
It seems to be GCC 4.7.2, and as I didn't saw any mention of those acronyms, I guess it's SJLJFrom the version number, I would guess you have the official MinGW build, which uses DW2 exception handling. However, the release (from what I can tell (http://forums.codeblocks.org/index.php/topic,3299.0.html)) was built using SJLJ.
Only the pluginThe two exception handling methods cannot be mixed (to my knowledge), so you will either have to compile the plugin using this SJLJ build (http://tdm-gcc.tdragon.net/), or build the whole program with your current compiler.
I customized the line (to add /Qstd=c99), here is it: $compiler /nologo $options $includes /c "$file" /Fo"$file_dir\$object" /Qstd=c99.This it pretty much the most wrong way to do it. Use the other options in your project's build options or in the compiler's settings.
What is the command executed on the command line which can be used successfully to build the code?The line work on the ICC command line utility but the path is different: http://pastie.org/private/0q2gx3zgm9vo8h1bifp0gI customized the line (to add /Qstd=c99), here is it: $compiler /nologo $options $includes /c "$file" /Fo"$file_dir\$object" /Qstd=c99.This it pretty much the most wrong way to do it. Use the other options in your project's build options or in the compiler's settings.
Remove what is stored in AppData/ is enough to reset prefs?Yes.
Also, how to get CB console PATH? Is it the same than the default system PATH?Code::Blocks modifies the path; you can check what it is by adding a pre/post-build step that prints out the path.
1- Watches window: no more a list of variable of the current function: well, I deal with some quite big functions with over 50 variables. To deal with so much, I've functions that modify a lot of them in the same time but as I don't want to read the whole function, with the old system, I'd to watch on what become red after the function, now, I'll have to add _every variable_ to the window, manually... Please, tell me there is a way to get them all easily, the new system seems to have a lot of things to show but without this, I can't do anything :(
import sys
import gdb
import re
class static:
"Creates a 'static' method"
def __init__(self, function):
self.__call__ = function
peter_pretty_printers = []
def register_pretty_printer(pretty_printer):
"Registers a Pretty Printer"
peter_pretty_printers.append(pretty_printer)
return pretty_printer
@register_pretty_printer
class AllLocalsOrArgumentsPrinter:
""" pretty prints `(void*****)"LOCALS"` as a map of all local variables
or `(void*****)"ARGS"` as a map of all function arguments
or `(void*****)"FRAME"` as both
"""
@static
def supports_value(val):
if val.type != gdb.parse_and_eval("(void*****)0").type:
return False
try:
return val.cast(gdb.lookup_type('char').pointer()).string() in ['LOCALS', 'ARGS', 'FRAME']
except:
return False
def __init__(self, val):
self.cmd = val.cast(gdb.lookup_type('char').pointer()).string()
@static
def info_to_string(gdb_command):
result = gdb.execute(gdb_command, to_string=True).strip()
if result in ['No locals.', 'No arguments.']:
return '{}'
# make unique
split_result = re.split(r'^([a-zA-Z_][a-zA-Z0-9_]*) = ', result, flags=re.MULTILINE)
split_result.remove('')
tuples = [(split_result[2*i], split_result[2*i+1].strip('\n')) for i in range(len(split_result)/2)]
tuples.reverse()
result = ''.join([',\n' + k + ' = ' + v for (k,v) in dict(tuples).iteritems()]).lstrip(',')
return '{' + result + '\n}'
def to_string(self):
if self.cmd == 'LOCALS':
return AllLocalsOrArgumentsPrinter.info_to_string('info local')
if self.cmd == 'ARGS':
return AllLocalsOrArgumentsPrinter.info_to_string('info arg')
if self.cmd == 'FRAME':
locals = AllLocalsOrArgumentsPrinter.info_to_string('info local')
args = AllLocalsOrArgumentsPrinter.info_to_string('info arg')
return '{\nLocal Variables = ' + locals + ',\nFunction Arguments = ' + args + '\n}'
return '?'
def register_peter_printers(obj):
if obj == None:
obj = gdb
obj.pretty_printers.append(lookup_function)
def lookup_function(val):
for pp in peter_pretty_printers:
if pp.supports_value(val):
return pp(val)
return None
@ollydbg: Yes, my pretty printer works best (or only ;D) with your patched gdb.Did you test some uninitialzed C++ container as local variables. E.g.
void f()
{
int a;
vector<string> b;
....Some statement;
map<string,string> c;
}
If I knew a way to iterate all symbols of a frame in python, I would not just call "info local".I have asked such question in gdb maillist, but it looks like there is no quick solution/fix to handle this issue. Mostly I think the c-runtime-library should fill the memory with some value like "0xCDCDCDCD", and gdb try to exam its value when it want to deference a pointer.....:)
But in my opinion, gdb pretty printers must be able to deal with arbitrary/corrupt data.
If a pretty printer crashes/turns into an infinite loop/takes too long to complete when handed some arbitrary bytes, then that pretty printer is buggy and needs to be fixed or disabled:
One of the main points in debugging is to inspect data corruption bugs.
With your patched gdb, the variables b and c are not listed in "info local" until I hit there declaration lines. And directly adding a watch to b displays as `No symbol "b" in current context.` when I just enter the function.For my patched gdb, I just filter out the local variables those definition line is bigger than the PC line. :), This is what my patch trying to do(do a dirty work to avoid crash/lag issue). If you use an unpatched gdb(like the gdb-python27.exe) from mingw official site, you may see the lag or crash issue.
You are right that there is no nice simple solution yet.
My `(void*****)"LOCALS"` python code is just an ugly hack for those who missed the feature and/or do plain C programming without many other fancy pretty printers. It was the only regression that stopped me from upgrading until I learned python. But now I already fell in love with the 'Evaluate expression' tooltips :)You can ask "oBFusCATed" to implement this, he/she is the debugger plugin guru. Or, you can implement yourself, and post a patch here. ;D
Apart from that, it would be nice to have a checkbox next to each entry in the Watches window to temporarily enable/disable the watch.
Apart from that, it would be nice to have a checkbox next to each entry in the Watches window to temporarily enable/disable the watch.I don't think it is possible to have checkboxes there, but it can be put in the context menu.
Finally we managed to release Code::Blocks 12.11 !
You can download binaries for windows, mac and many major linux distros from our download page (http://www.codeblocks.org/downloads/26)
Many thanks to all the contributors and developers who worked hard for this!
Can anyone help me? I am a newbie in programming and there is a bug in code::block, I don't know how to fix it.
A simply addition program has an error. The sum is not appropriate to the the numbers. How can I fix this bugs/errors ? Please help me.
Thank you
We cannot do anything about it. Go bug Ubuntu maintainers to add this package to this version of Ubuntu it is theirs job to do it.As I was told at http://askubuntu.com/questions/365158/12-04-lts-update-managers-do-not-see-latest-codeblocks, this is a feature of Ubuntu support indeed - limited update capabilities.