<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Home</title><link>https://sourceforge.net/p/quercitools/wiki/Home/</link><description>Recent changes to Home</description><atom:link href="https://sourceforge.net/p/quercitools/wiki/Home/feed" rel="self"/><language>en</language><lastBuildDate>Fri, 08 Apr 2016 23:19:07 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/quercitools/wiki/Home/feed" rel="self" type="application/rss+xml"/><item><title>Home modified by Sergiy Lozovsky</title><link>https://sourceforge.net/p/quercitools/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v9
+++ v10
@@ -49,11 +49,7 @@
 0x7fffffffe340 0x000000000040050c testf
 0x7fffffffe360 0x000000000040052d main
 ~~~~
-
-Limitations
----
-
-Current Stackcheck version doesn't handle multithreading, yet. Multithreading support is in our roadmap. 
+

 [[members limit=20]]
 [[download_button]]
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergiy Lozovsky</dc:creator><pubDate>Fri, 08 Apr 2016 23:19:07 -0000</pubDate><guid>https://sourceforge.net402c2dc2c6aadc8b7ba990372f1592b6fe876c9a</guid></item><item><title>Home modified by Sergiy Lozovsky</title><link>https://sourceforge.net/p/quercitools/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v8
+++ v9
@@ -22,6 +22,8 @@
 1. Recompile the program (binary under test) to include debugging information (gcc –g);
 2. Locate the preferred version of gdb and use its path; “gdb” is used by default;
 3. Run stackcheck.py;
+
+Stackcheck points to the code line that goes **after** the one that overwrote the stack.

 Test
 ---
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergiy Lozovsky</dc:creator><pubDate>Fri, 08 Apr 2016 22:39:38 -0000</pubDate><guid>https://sourceforge.net1a45928c2ee26305ede649d5619faff0a4ba4e80</guid></item><item><title>Home modified by Sergiy Lozovsky</title><link>https://sourceforge.net/p/quercitools/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v7
+++ v8
@@ -12,7 +12,7 @@
 Synopsis
 ---

-`stackcheck.py [-g &amp;lt;path_to_gdb&amp;gt;] path_to_binary_under_test`
+`stackcheck.py [-g &amp;lt;path_to_gdb&amp;gt;] path_to_binary_under_test [arg1] ...`

 Description
 ---
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergiy Lozovsky</dc:creator><pubDate>Fri, 08 Apr 2016 03:36:13 -0000</pubDate><guid>https://sourceforge.netbe27b2f2d0628e8659b366d7f0fe26615d499056</guid></item><item><title>Home modified by Sergiy Lozovsky</title><link>https://sourceforge.net/p/quercitools/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v6
+++ v7
@@ -2,7 +2,7 @@

 Quercitools has just one tool for now - stackcheck.py. It helps in troubleshooting of stack overruns. Such defects destroy stack contents and locating the source of the problem is not easy. This is where stackcheck.py comes to help. It runs a program under test by gdb and protects some parts of the stack. If the program overwrites such parts stackcheck.py stops the program and point to the offending line of code.

-Stackcheck uses hardware checkpoints for speed and doesn't step through the program. It is designed to troubleshoot production software, but as long as gdb is involved there is some performance penalty.
+Stackcheck uses hardware checkpoints for speed and doesn't step through the program, but as long as gdb is involved there is some performance penalty.

 Installation
 ---
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergiy Lozovsky</dc:creator><pubDate>Wed, 06 Apr 2016 00:10:41 -0000</pubDate><guid>https://sourceforge.net1a1353ff27105c71efb8b96191af3ffcf1837f34</guid></item><item><title>Home modified by Sergiy Lozovsky</title><link>https://sourceforge.net/p/quercitools/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v5
+++ v6
@@ -1,6 +1,8 @@
 # Quercitools

 Quercitools has just one tool for now - stackcheck.py. It helps in troubleshooting of stack overruns. Such defects destroy stack contents and locating the source of the problem is not easy. This is where stackcheck.py comes to help. It runs a program under test by gdb and protects some parts of the stack. If the program overwrites such parts stackcheck.py stops the program and point to the offending line of code.
+
+Stackcheck uses hardware checkpoints for speed and doesn't step through the program. It is designed to troubleshoot production software, but as long as gdb is involved there is some performance penalty.

 Installation
 ---
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergiy Lozovsky</dc:creator><pubDate>Wed, 06 Apr 2016 00:06:20 -0000</pubDate><guid>https://sourceforge.net5aa586721bac7ec2d8d68ea256701ed99c596575</guid></item><item><title>Home modified by Sergiy Lozovsky</title><link>https://sourceforge.net/p/quercitools/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -46,6 +46,10 @@
 0x7fffffffe360 0x000000000040052d main
 ~~~~

+Limitations
+---
+
+Current Stackcheck version doesn't handle multithreading, yet. Multithreading support is in our roadmap. 

 [[members limit=20]]
 [[download_button]]
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergiy Lozovsky</dc:creator><pubDate>Tue, 05 Apr 2016 22:09:28 -0000</pubDate><guid>https://sourceforge.netd5a50c808cd5559c5ed7d37053e3eaf867b36cdf</guid></item><item><title>Home modified by Sergiy Lozovsky</title><link>https://sourceforge.net/p/quercitools/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -21,6 +21,31 @@
 2. Locate the preferred version of gdb and use its path; “gdb” is used by default;
 3. Run stackcheck.py;

+Test
+---
+
+Included is test program test4.c that overwrites its stack. Test run:
+
+
+~~~~
+$ cc -o test4 -g  test4.c
+$ ./stackcheck.py -g /u/slozovsky/gdb/bin/gdb test4
+
+=== Stack Overrun ===
+Overwritten address: *0x7fffffffe360
+Frame:
+{'addr': '0x000000000040051a',
+ 'args': [{'name': 'a', 'value': '0x7fffffffe358'}],
+ 'file': 'test4.c',
+ 'fullname': '/usr/home/nfs/slozovsky/Development/gdb1/test4.c',
+ 'func': 'testf',
+ 'line': '12'}
+
+Back trace (rbp, function address, function name):
+0x7fffffffe340 0x000000000040050c testf
+0x7fffffffe360 0x000000000040052d main
+~~~~
+

 [[members limit=20]]
 [[download_button]]
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergiy Lozovsky</dc:creator><pubDate>Tue, 05 Apr 2016 21:54:47 -0000</pubDate><guid>https://sourceforge.net678f2b44c976a722c65f2cba4ff083a16cde0d3f</guid></item><item><title>Home modified by Sergiy Lozovsky</title><link>https://sourceforge.net/p/quercitools/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -10,7 +10,7 @@
 Synopsis
 ---

-stackcheck.py [-g &amp;lt;path_to_gdb&amp;gt;] path_to_binary_under_test
+`stackcheck.py [-g &amp;lt;path_to_gdb&amp;gt;] path_to_binary_under_test`

 Description
 ---
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergiy Lozovsky</dc:creator><pubDate>Tue, 05 Apr 2016 21:34:09 -0000</pubDate><guid>https://sourceforge.net03e67872340516320f2007fc2fab6f30dece13d8</guid></item><item><title>Home modified by Sergiy Lozovsky</title><link>https://sourceforge.net/p/quercitools/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,8 +1,26 @@
-Welcome to your wiki!
+# Quercitools

-This is the default page, edit it as you see fit. To add a new page simply reference it within brackets, e.g.: [SamplePage].
+Quercitools has just one tool for now - stackcheck.py. It helps in troubleshooting of stack overruns. Such defects destroy stack contents and locating the source of the problem is not easy. This is where stackcheck.py comes to help. It runs a program under test by gdb and protects some parts of the stack. If the program overwrites such parts stackcheck.py stops the program and point to the offending line of code.

-The wiki uses [Markdown](/p/quercitools/wiki/markdown_syntax/) syntax.
+Installation
+---
+
+Unpack the distribution tar file into some directory. The latest version of gdb is recommended.
+
+Synopsis
+---
+
+stackcheck.py [-g &amp;lt;path_to_gdb&amp;gt;] path_to_binary_under_test
+
+Description
+---
+
+If the program corrupts its stack:
+
+1. Recompile the program (binary under test) to include debugging information (gcc –g);
+2. Locate the preferred version of gdb and use its path; “gdb” is used by default;
+3. Run stackcheck.py;
+

 [[members limit=20]]
 [[download_button]]
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergiy Lozovsky</dc:creator><pubDate>Tue, 05 Apr 2016 21:33:21 -0000</pubDate><guid>https://sourceforge.net99aeebf5950db722faedd4d7872715d9eb6f0ec6</guid></item><item><title>Home modified by Sergiy Lozovsky</title><link>https://sourceforge.net/p/quercitools/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Welcome to your wiki!&lt;/p&gt;
&lt;p&gt;This is the default page, edit it as you see fit. To add a new page simply reference it within brackets, e.g.: &lt;span&gt;[SamplePage]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;The wiki uses &lt;a class="" href="/p/quercitools/wiki/markdown_syntax/"&gt;Markdown&lt;/a&gt; syntax.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;h6&gt;Project Members:&lt;/h6&gt;
	&lt;ul class="md-users-list"&gt;
		&lt;li&gt;&lt;a href="/u/slozovsky/"&gt;Sergiy Lozovsky&lt;/a&gt; (admin)&lt;/li&gt;
		
	&lt;/ul&gt;&lt;br/&gt;
&lt;p&gt;&lt;span class="download-button-57031ebbbcf63a1d8035fd6a" style="margin-bottom: 1em; display: block;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergiy Lozovsky</dc:creator><pubDate>Tue, 05 Apr 2016 02:11:07 -0000</pubDate><guid>https://sourceforge.net9d3ac5f20550df0dbcca7e2300ed57f2e5a12443</guid></item></channel></rss>