about summary refs log tree commit diff stats
path: root/dev/c/hello.html
diff options
context:
space:
mode:
Diffstat (limited to 'dev/c/hello.html')
-rw-r--r--dev/c/hello.html134
1 files changed, 134 insertions, 0 deletions
diff --git a/dev/c/hello.html b/dev/c/hello.html
new file mode 100644
index 0000000..ff31bc9
--- /dev/null
+++ b/dev/c/hello.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html dir="ltr" lang="en">
+    <head>
+	<meta charset='utf-8'>
+	<title>C &amp; GDB</title>
+    </head>
+    <body>
+        <a href="../index.html">C &amp; GDB Index</a>
+
+	<h1>Hello World</h1>
+
+        <p>C "allows to implement" or approach to various
+        programming paradigms but due to it's characteristics
+        it's more a procedural language. C procedural programs
+        are divided in smaller procedures, or functions, and
+        data or pointers to data are passed into them or is
+        shared between them. To get started create file
+        hello.c with;</p>
+
+	<pre>
+	#include &lt;stdio.h&gt;
+
+	int main() {
+	    printf("Hello World!");
+	    return 0;
+	}
+	</pre>
+
+	<p>Compile;</p>
+
+	<pre>
+	$ gcc -Wall hello.c -o hello
+	</pre>
+
+	<p>Run;</p>
+
+	<pre>
+	$./hello
+	Hello World!
+	</pre>
+
+	<h2 id="makefile">Makefile</h2>
+
+	<p>Make reads a Makefile by default on current directory,
+	Makefile defines targets, for example executables and their
+	dependencies, for example object files and source files.<p>
+
+	<p>Create Makefile;</p>
+
+	<pre>
+	CC=gcc
+	CFLAGS=-Wall
+
+	hello: main.o hello.o
+
+	clean:
+		rm -f hello main.o hello.o
+	</pre>
+
+	<pre>
+	$ touch NEWS README AUTHORS ChangeLog
+	</pre>
+
+	<h2 id="debug">Debug</h2>
+
+	<p>To use gdb you need to compile program with -g flag. Change
+	Makefile</p>
+
+	<pre>
+	CC=gcc
+	CFLAGS=-Wall -g
+
+	hello: main.o hello.o
+
+	clean:
+		rm -f hello main.o hello.o
+	</pre>
+
+	<pre>
+	$ gdb hello
+	</pre>
+
+	<p>Set break point;</p>
+
+	<pre>
+	(gdb) break main
+	</pre>
+
+	<p>To start the program you can type run, this way gdb
+	will try to run the program until the end. If program
+	crash, gdb will stop it for debuging. Start program;</p>
+
+	<pre>
+	(gdb) run
+	</pre>
+
+	<p>Step in next line;</p>
+
+	<pre>
+	(gdb) s
+	</pre>
+
+        <p>Print variable "name" value;</p>
+
+        <pre>
+        (gdb) print name
+        $1 = 0x4005b0 "world"
+        (gdb)
+        </pre>
+
+        <p>Print variable "name" type;</p>
+
+        <pre>
+        (gdb) ptype name
+        type = const char *
+        (gdb)
+        </pre>
+
+        <p>Variable is a <a href="elements.html#const">string constant</a>.
+        Execute next line to end;</p>
+
+	<pre>
+	(gdb) n
+	</pre>
+
+        <a href="../index.html">C &amp; GDB Index</a>
+	<p>
+	This is part of the Hive System Documentation.
+	Copyright (C) 2019
+	Hive Team.
+	See the file <a href="../../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
+	for copying conditions.</p>
+    </body>
+</html>