/ __/ __  ___ ___  ___ ___
  _\ \/ _ \/ -_) _ `/ __/ -_)
 /___/ .__/\__/\_,_/_/  \__/
Speare Pro v1.2.94
The free small IDE for scripting languages.
(c) 2020 http://www.sevenuc.com

Speare code editor is a small, free and friendly code editor, and a really ultra light IDE (less than 7MB). You can use it to edit all kinds of text file, programming and debugging with almost all common programming languages. It designed to make programming feels light, simple and free. Speare code editor not only has an efficient code navigation and call routines tracing ability but also has flexibility to extend the IDE to support special developing requirements and easily to add a new programming language in it. Speare code editor includes builtin debugging environment for C, C++, Ruby, mruby, Lua, Python, PHP, Perl and Tcl, and give you complete freedom to control and customise a debugging environment for any programming language.

If you can't open the link above, please launch App Store and found "Speare pro" by searching.

Debug Mode

1. Click siding bottom button to show the debug toolbar.

2. Debug toolbar:

From left to right, Start, Stop, Step Into, Step Out, Run To, Step Over, Show Watches. The "Step Over" is equals to "Step next", and "Step To" is equals to "Continue" in common debugging words, and the "Step To" is the command that tell the debugger run to meet a breakpoint or an exception occurred or the program meet exit. On the rightmost there are three other function units, they are, search items in the stackview, siding stackview, and clean debug output.

Search in the debug output: click in the output area and use the shortcut key "Control + F" to do the searching.

3. Socket port:
You can set the socket communication port number both used by Debug Server and the Speare code editor. Open the Preferences of Speare and select the "Debug Settings" tab then input your number.

Please remember to empty the port number when you switched to debugging with the default builtin programming languages with default port number.

4. Watches:
Watches used to evaluate variable or expression and their values can be realtime showing in stackview when debugging session paused, the nodes normally has a green colour and always placed on the top of stackview.


Debugger Architecture

An free small IDE for C, C++, Ruby, mruby, Lua, Python, PHP, Perl and Tcl.

Proposed debugging environment support in Speare code editor are: GDB, LLDB, Ruby, mruby, Lua, Python, Perl, PHP, Tcl, Node.js, Dart, AWK and shell. Speare code editor provides very concise and simple interface to add new programming language in it, end user can very easily write a new programming language parser, syntax highlighting, code formatter and debugger for it, please refer this guide: language_extension_protocol.pdf.

Debugging code with Speare code editor

Speare code editor provides an intuitive debugging environment allows adding breakpoints and the execution flow can be viewed and controlled and has the abilities that an IDE debugger will give you over trace execution in code, view the call stack at any point in time, giving you a context for your current stack frame, step into libraries or sub modules that you want to tracing the debug symbols, and change variable values while the program is running. It provides simple interfaces that can be integrated with any command line tools without boring configuration, giving you the flexibility you need to debug code at hand. The debuggers of Speare code editor, the source-level debuggers, helps you step through the code line by line and observe the runtime behaviour of your program and got a better understanding of your code.


About the C programming language

Common pitfalls of C programming:

First known how to write close and free and then try open and alloc, ensure clean first and then do something is the philosophy and bits of C programming, this rule also suitable to other languages.

C is not safe but it is the strongest programming language and the most strongest softwares were written with it, including operation system and the most important infrastructure of internet and software industry, think about BIND, Apache, Nginx, MySQL, PostgreSQL, SQLite, Berkeley DB, Redis, Memcached, PHP, Perl, Ruby, Python, Lua, Git, FFmpeg and other countless excellent softwares. If sqlite and git were written with C++ or Java, I'll throw them away immediately. C is top professionals' language, a mature developer may needs ten years to really write software with it. The product quality of the software industry is directly proportional to the number of experienced C programming experts.

The Tao and Kung Fu of Programming

Why all attempts failed? They want to create new programming language to resolve problem in software industry, but all attempts failed. Any new programming language that intended to achieve a seamless translation from Lisp (or Lisp like language, e.g Javascript) to native executable code will failed at final. The product quality of the software industry is directly proportional to the number of experienced C programming experts, but experienced C developer and C ninja are rare and rare, because only a few people can walk on this difficult way. C is really unsafe and really difficult to master, to be a mature C developer or an C expert, a developer may needs about ten years to continually experience it. Programming is difficult, there is no shortcuts for programming, programming language itself can't resolve it. Only the honest and continuous improving of the C programming skills is the reliable way.

"C + elegant scripting language" is the reliable, efficient and flexible extending solution.

If you can't write quality C code, that means you're not a real programmer. Most developer have never written a real C software in their life, I wish more and more developer use Speare code editor to develop efficient and excellent software with C instead of current popular bloated programming languages.