IDE Windows - CodeBlocks vs. VS Express
-
Hallo Jungs,
da ich mich nun entgültig von meiner "Asbach"-Uralt IDE "Visual Studio 6" getrennt habe... bin ich nun auf 2 IDEs umgestiegen.- Code-Blocks 1.0 C2 Stable Release
- Visual Studio Express - C++
Warum ich 2 IDEs benutze ist eigentlich relativ einfach zu erklären und ich hoffe das ihr mir helfen könnt, es auf eine zu reduzieren....
- Wieso benötige ich noch VS Express C++ neben Code-Blocks?
Das Debugging und Variablen auslesen ist unter Code-Blocks ziemlich umständlich. Jedes mal wenn ich eine Variable anzeigen lassen will die nicht lokal ist muss ich diese erst in die Watchliste aufnehmen... das ist natürlich super nervig wenn die Funktionen/Methoden viele Variablen haben...
Gibt es unter CodeBlocks irgendeine Möglichkeit den Variableninhalt anzeigen zu lassen indem ich mit dem Mauzeiger über der Variable stehen bleibe (sowie in den MS IDEs?)
Gibt es unter CodeBlocks die Möglichkeit die Pointeradressen und den dazugehörigen Wert auf welchen der Pointer zeigt anzeigen zu lassen? Im Moment wenn ich den Pointer in die Watchliste mit aufnehme, sehe ich ja nur die Speicheradresse auf welche der Pointer verweist, aber nicht den Inhalt.. ist halt auch supernervig...- Wieso benötige ich CodeBLocks neben VS Express C++?
Da mir die Exporessedition nicht erlaub DLLs zu schreiben. (zumindest nicht im Projekt) - oder geht das irgendwie?
Ich würde ja gerne nur Code::Blocks verwenden (muss auch unter Linux entwickeln), da ich die IDE ansich sehr sehr gut finde, nur an den oben genannten Punkten verzweifele ich oft... vielleicht ist es ja nur eine Einstellungssache oder ich brauche ein NightlyBuild dafür...
Wäre super wenn ihr mir vielleicht helfen könntet
-
codefrag schrieb:
da ich mich nun entgültig von meiner "Asbach"-Uralt IDE "Visual Studio 6" getrennt habe
codefrag schrieb:
- Code-Blocks 1.0 C2 Stable Release
Vielleicht solltest du dir tatsächlich mal die Nightly Builds von Code::Blocks ansehen, die sind viel weiter fortgeschritten.
codefrag schrieb:
- Wieso benötige ich CodeBLocks neben VS Express C++?
Da mir die Exporessedition nicht erlaub DLLs zu schreiben. (zumindest nicht im Projekt) - oder geht das irgendwie?
Ja, das geht; für Details siehe hier:
http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx
-
Variableninhalte auslesen unter Codeblocks geht mit g++/gdb sowohl unter WIn als auch unter Linux problemfrei, auch ohne Watchlist. (Nightly)
Wenn du den MS-Compiler verwenden möchtest sieht das vielleicht anders aus, werd ich demnächst probieren, da ich plane das Projekt, das sowol VC8/DirectX als auch g++/openGL können soll (nachher dann auch Linux
) vollständig mit Code::Blocks arbeiten will
-
darthdespotism schrieb:
Variableninhalte auslesen unter Codeblocks geht mit g++/gdb sowohl unter WIn als auch unter Linux problemfrei, auch ohne Watchlist. (Nightly)
In der IDE? Wie funktioniert das... in den Compilersettings habe ich "-g" als Option mitgegeben. Perfekt wäre es wirklich wenn Code:Blocks mir den Inhalt (+ Memoryadressen beim Pointer) ausgeben würde wenn der Mauszeigers auf der Variable stehen bleibt.
Greetz
-
ich glaube View->SymbolBrowser wars, wegen feisty-upgrade kann ich gerade das ganze etwas schlecht testen
-
trotzdem ist der gdb (leider) lange nicht so komfortabel wie der debugger von
vcexpress.Wenn der debugger nicht so *** wäre, würde ich sofort auf linux unsteigen mitm proggen...
Aber mit gdb lassen sich std::string extrem schlecht auslesen, gar nicht erst zu sprechen von stl-containern wie vector list und map. Das ist mit vc einfach genial gelöst.
Und sonst komm ich auch ncih so gut klar mit den linux IDEs wie anjuta oder kdevelop aber das tut hier nichts zur sache
-
gnu automake & anjunta/kdevelope, ich habs ausprobiert und bin seither bei Codeblocks für Linux das ist ziemlich genau so wie in Windows.
Das mit den STL-Containern ist echt ein Problem, da kommt man mit gdb nicht weit, leider
-
darthdespotism schrieb:
ich glaube View->SymbolBrowser wars, wegen feisty-upgrade kann ich gerade das ganze etwas schlecht testen
hmm unter View gibts bei mir leider keinen SymbolBrowser.. und im Manager sehe ich wieder nur die lokalen Variablen... und bei den Pointern auch nur wieder die Speicheradresse... wenn ich mit der Maus im Coding über der Variable stehen bleibe kommt auch keine Info hoch...
Vielleicht ist ja auch noch nicht ganz klar was ich meine... ich mein z.B. sowas hier:
http://www.ahristov.com/taller/blog/mysql01.gifWenn ich mit den Cursor auf der Variable stehen bleibe... das mir der Wert (und bei Pointern - die Adresse) in so einem "Notizfeld" angezeigt wird...
Wäre super wenn das ginge...
-
Hm das hab ich noch nicht gesehen, kannst aber bestimmt bei CodeBlocks mal nachfragen ob die dir das Implementieren
-
Maxi schrieb:
Aber mit gdb lassen sich std::string extrem schlecht auslesen, gar nicht erst zu sprechen von stl-containern wie vector list und map. Das ist mit vc einfach genial gelöst.
Darum lassen sich bei CodeBlocks ja auch Scripts schreiben, die die GDB Ausgabe erst ordentlich formatieren. Die Unterstützung ist zwar noch ein wenig buggy allerdings std::string wird als Stringliteral ausgegeben. Nebenbei gibt es noch Unterstützung für wxString und std::vector. Kann im Moment sicherlich noch nicht mit dem VC mithalten, ist aber ein Anfang.
Einige Versionen erlaubten es den Wert unter dem Cursor auszuwerten. Ist aber im Moment ausgeschaltet da buggy.
Um den gezeigten Wert eines Pointer foo zu bekommen, *foo als Watch angeben.
-
darthdespotism schrieb:
Hm das hab ich noch nicht gesehen, kannst aber bestimmt bei CodeBlocks mal nachfragen ob die dir das Implementieren
Ich muss mich verbessern Tools->Compiler&Debugger settings->Compiler->Evaluate Expresionu under cursor.
EDIT:// sry beim vorposter überlesen
Ben04 schrieb:
Darum lassen sich bei CodeBlocks ja auch Scripts schreiben, die die GDB Ausgabe erst ordentlich formatieren. Die Unterstützung ist zwar noch ein wenig buggy allerdings std::string wird als Stringliteral ausgegeben. Nebenbei gibt es noch Unterstützung für wxString und std::vector. Kann im Moment sicherlich noch nicht mit dem VC mithalten, ist aber ein Anfang.
Wo finde ich die Skripte?
-
darthdespotism schrieb:
darthdespotism schrieb:
Hm das hab ich noch nicht gesehen, kannst aber bestimmt bei CodeBlocks mal nachfragen ob die dir das Implementieren
Ich muss mich verbessern Tools->Compiler&Debugger settings->Compiler->Evaluate Expresionu under cursor.
Ist ja kein Ding
aber bei mir gibt es unter Tools nur "Configure Tools". Und dann kann ich da irgendwelche User-Defined Tools adden... aber nix mit "Compiler&Debugger Settings"...
Welchen Build hast du von Code::Blocks oder ab welchen ist das implementiert...
Ben04 schrieb:
Um einen den gezeigten Wert eines Pointer foo zu bekommen, *foo als Watch angeben.
Joa das ist klar... aber halt nicht besonders komfortabel
genausowenig wie alle möglichen Variablen als Watch zu definieren um den Inhalt zu sehen...
Greetz
-
ne aktuelle nightly svn > 3870 bei mir.
Aber keine Ahnung seit wanns das gibt
-
darthdespotism schrieb:
Ben04 schrieb:
Darum lassen sich bei CodeBlocks ja auch Scripts schreiben, die die GDB Ausgabe erst ordentlich formatieren. Die Unterstützung ist zwar noch ein wenig buggy allerdings std::string wird als Stringliteral ausgegeben. Nebenbei gibt es noch Unterstützung für wxString und std::vector. Kann im Moment sicherlich noch nicht mit dem VC mithalten, ist aber ein Anfang.
Wo finde ich die Skripte?
Unter CodeBlocks\share\CodeBlocks\scipts\gdb_types.script Leider ist es noch eher in der Proof-of-Concept Phase. Das Scriptinterface lässt wirklich zu wünschen übrig. Kann aber noch was werden wenn sich jemand dahinter setzt. Auf der TODO Liste ist es auf jeden Fall.
-
darthdespotism schrieb:
ne aktuelle nightly svn > 3870 bei mir.
Aber keine Ahnung seit wanns das gibtSo habe jetzt den aktuellen nightly (svn 3876)... und die Werteanzeige im Debugger funktioniert perfekt... sogar noch besser als ich gedacht habe...
Es wird die Speicheradresse + Wert angezeigt... sehr geil... jetzt deinstallier ich mir gleich den VS Express
Noch ne kurze Ergänzungsfrage... kann man das Zeitintervall für die Werte/Adressanzeige im Debugger irgendwie einstellen? es dauert doch relativ lang bis mir der Wert in dem "Notizfeld" angezeigt wird...
Wäre super
-
Ist BerliOS wieder erreichbar?
Dann muss ich mir auch mal was neues ziehen (unter Linux hab ich denk ich 3879 SVN)
-
darthdespotism schrieb:
Ist BerliOS wieder erreichbar?
Dann muss ich mir auch mal was neues ziehen (unter Linux hab ich denk ich 3879 SVN)
Joa gestern gings wieder