<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
	<id>https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D8%B5%D8%AD%D8%AD_%D8%AC%D9%86%D9%88</id>
	<title>مصحح جنو - تاريخ المراجعة</title>
	<link rel="self" type="application/atom+xml" href="https://3rabica.org/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D8%B5%D8%AD%D8%AD_%D8%AC%D9%86%D9%88"/>
	<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%85%D8%B5%D8%AD%D8%AD_%D8%AC%D9%86%D9%88&amp;action=history"/>
	<updated>2026-06-07T07:23:43Z</updated>
	<subtitle>تاريخ التعديل لهذه الصفحة في الويكي</subtitle>
	<generator>MediaWiki 1.43.7</generator>
	<entry>
		<id>https://3rabica.org/index.php?title=%D9%85%D8%B5%D8%AD%D8%AD_%D8%AC%D9%86%D9%88&amp;diff=1555196&amp;oldid=prev</id>
		<title>عبد العزيز: -تصنيف:برامج حاسوب؛ إزالة تصنيف تمهيدًا لدمجه أو حذفه (QuickCategories batch #6799)</title>
		<link rel="alternate" type="text/html" href="https://3rabica.org/index.php?title=%D9%85%D8%B5%D8%AD%D8%AD_%D8%AC%D9%86%D9%88&amp;diff=1555196&amp;oldid=prev"/>
		<updated>2023-09-24T11:59:17Z</updated>

		<summary type="html">&lt;p&gt;-&lt;a href=&quot;/index.php?title=%D8%AA%D8%B5%D9%86%D9%8A%D9%81:%D8%A8%D8%B1%D8%A7%D9%85%D8%AC_%D8%AD%D8%A7%D8%B3%D9%88%D8%A8&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;تصنيف:برامج حاسوب (الصفحة غير موجودة)&quot;&gt;تصنيف:برامج حاسوب&lt;/a&gt;؛ إزالة تصنيف تمهيدًا لدمجه أو حذفه (&lt;a href=&quot;/index.php?title=Toolforge:quickcategories/batch/6799/&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Toolforge:quickcategories/batch/6799/ (الصفحة غير موجودة)&quot;&gt;QuickCategories batch #6799&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحة جديدة&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{بطاقة برمجية&lt;br /&gt;
| الشعار                   = [[ملف:Gdb icon.png]]&lt;br /&gt;
| لقطة             = [[ملف:GDB-screenshot.gif|200px]]&lt;br /&gt;
| المطور              = [[مشروع جنو]]&lt;br /&gt;
| الإصدار               = {{تاريخ إطلاق وعمر|1986}}&lt;br /&gt;
| آخر إصدار = 7.11&lt;br /&gt;
| تاريخ آخر إصدار    = {{تاريخ إطلاق وعمر|2016|2|24}}&lt;br /&gt;
| لغة البرمجة   = [[سي (لغة برمجة)|سي]]&lt;br /&gt;
| نظام التشغيل       = [[شبيه يونكس]]، [[مايكروسوفت ويندوز|ويندوز]]&lt;br /&gt;
| النوعية                  = [[منقح|مصحح]]&lt;br /&gt;
| الترخيص                = [[رخصة جنو العمومية]]&lt;br /&gt;
| الموقع                = {{مسار|https://www.gnu.org/software/gdb}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;مصحح جنو&amp;#039;&amp;#039;&amp;#039; {{إنج|GNU Debugger}} أو إختصارا &amp;#039;&amp;#039;&amp;#039;GBD&amp;#039;&amp;#039;&amp;#039;، هو [[منقح|مصحح]] متوفر لنظام [[جنو]]. وهو مصحح نقال يعمل على العديد من [[شبيه يونكس|الأنظمة الشبيهة بيونكس]]، ويعمل مع العديد من لغات البرمجة، مثل [[أيدا (لغة برمجة)|أدا]]، و[[سي++]]، و[[سي-الكائنية|سي الكائنية]]، و[[فري باسكال]]، و[[فورتران]]، و[[جافا (لغة برمجة)|جافا]]،&amp;lt;ref&amp;gt;[http://sourceware.org/gdb/current/onlinedocs/gdb/Supported-Languages.html#Supported-Languages GDB Documentation - Supported Languages]، ولوج في 19 أبريل، 2012. {{Webarchive|url=https://web.archive.org/web/20171228100403/https://sourceware.org/gdb/current/onlinedocs/gdb/Supported-Languages.html |date=28 ديسمبر 2017}}&amp;lt;/ref&amp;gt; كما يعمل جزئيًا مع لغات أخرى.&lt;br /&gt;
&lt;br /&gt;
== سطر الأوامر ==&lt;br /&gt;
&amp;#039;&amp;#039;gdb &amp;#039;&amp;#039;&amp;#039; ***&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;br /&amp;gt; تنقيح برنامج، استبدل *** بمسار البرنامج أو بملف القلب أو بمعرف العملية (process ID)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039; run &amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;br /&amp;gt; بدء التنقيح&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039; attach &amp;#039;&amp;#039;&amp;#039; *** &amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;br /&amp;gt; تنقيح مهمة (المهمة هي أي برنامج يعمل في الذاكرة), استبدل *** بمعرف العملية (process ID)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039; detach &amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;br /&amp;gt; إنهاء تنقيح المهمة&lt;br /&gt;
GDB Documentation&lt;br /&gt;
&lt;br /&gt;
== أمثلة لأوامر مصحح جنو ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot; |&amp;lt;code&amp;gt;gdb program&amp;lt;/code&amp;gt;&lt;br /&gt;
|معالجة &amp;quot;البرنامج&amp;quot; (من لوحة ادخال الأوامر console)&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot; |&amp;lt;code&amp;gt;run -v&amp;lt;/code&amp;gt;&lt;br /&gt;
|قم بتشغيل البرنامج المحمل بالخصائص&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot; |&amp;lt;code&amp;gt;bt&amp;lt;/code&amp;gt; &lt;br /&gt;
|تتبع الرجوع (في حالة حدث خطأ في البرنامج)&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot; |&amp;lt;code&amp;gt;info registers&amp;lt;/code&amp;gt;&lt;br /&gt;
|تفريغ كافة السجلات&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;text-align:left&amp;quot; |&amp;lt;code&amp;gt;disas $pc-32, $pc+32&amp;lt;/code&amp;gt;&lt;br /&gt;
|تفكيك&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== تاريخ ==&lt;br /&gt;
مصحح جنو صنع أول مرة بواسطة [[ريتشارد ستولمن]] (Rihard Stallman) في سنة 1986 كجزء من [[مشروع جنو|نظامه جنو]]، بعد أن كان جنو اماكس (GNU Emas) «مستقر بشكل جيد».&amp;lt;ref name=&amp;quot;stallman-quote-1986&amp;quot;&amp;gt;{{استشهاد ويب&lt;br /&gt;
| مسار = https://www.gnu.org/philosophy/stallman-kth.html&lt;br /&gt;
| عنوان = Richard Stallman lecture at the Royal Institute of Technology, Sweden (1986-10-30)&lt;br /&gt;
| تاريخ الوصول = 2006-09-21&lt;br /&gt;
| اقتباس = Then after GNU Emacs was reasonably stable, which took all in all about a year and a half, I started getting back to other parts of the system. I developed a debugger which I called GDB which is a symbolic debugger for C code, which recently entered distribution. Now this debugger is to a large extent in the spirit of DBX, which is a debugger that comes with Berkeley Unix.&lt;br /&gt;
| مسار أرشيف = https://web.archive.org/web/20201227214417/http://www.gnu.org/philosophy/stallman-kth.html | تاريخ أرشيف = 27 ديسمبر 2020 }}&amp;lt;/ref&amp;gt; مصحح جنو برنامج مجاني أصدر تحت ترخيص [[رخصة جنو العمومية]] «جي بي ال» (GNU General Public License GPL). تم تصميمه على غرار مصحح «دي بي اكس» (DBX)، الذي أتى مع توزيعات بيركيلي يونيكس.&amp;lt;ref name=&amp;quot;stallman-quote-19862&amp;quot;&amp;gt;{{استشهاد ويب&lt;br /&gt;
| مسار = https://www.gnu.org/philosophy/stallman-kth.html&lt;br /&gt;
| عنوان = Richard Stallman lecture at the Royal Institute of Technology, Sweden (1986-10-30)&lt;br /&gt;
| تاريخ الوصول = 2006-09-21&lt;br /&gt;
| اقتباس = Then after GNU Emacs was reasonably stable, which took all in all about a year and a half, I started getting back to other parts of the system. I developed a debugger which I called GDB which is a symbolic debugger for C code, which recently entered distribution. Now this debugger is to a large extent in the spirit of DBX, which is a debugger that comes with Berkeley Unix.&lt;br /&gt;
|مسار أرشيف= https://web.archive.org/web/20201227214417/http://www.gnu.org/philosophy/stallman-kth.html&lt;br /&gt;
|تاريخ أرشيف=2020-12-27}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
من سنة 1990 إلى سنة 1993 مصحح جنو كان مصان بواسطة جون جيلمور (John Gilmore).&amp;lt;ref&amp;gt;{{استشهاد ويب&lt;br /&gt;
| مسار = https://hyperleap.com/topic/John_Gilmore_(activist)&lt;br /&gt;
| عنوان = John Gilmore (activist)&lt;br /&gt;
| موقع = hyperleap.com&lt;br /&gt;
| مسار أرشيف = https://web.archive.org/web/20210226173853/https://hyperleap.com/topic/John_Gilmore_(activist) | تاريخ أرشيف = 26 فبراير 2021 }}&amp;lt;/ref&amp;gt; أما الآن فهو تابع إلى لجنة تسيير مصحح جنو التي أوجدت بواسطة مؤسسة البرامج الحرة (Free Software Foundation).&amp;lt;ref&amp;gt;{{استشهاد ويب&lt;br /&gt;
| مسار = https://www.gnu.org/software/gdb/committee/&lt;br /&gt;
| عنوان = GDB Steering Committee&lt;br /&gt;
| تاريخ الوصول = 2008-05-11&lt;br /&gt;
|مسار أرشيف= https://web.archive.org/web/20200924192556/http://www.gnu.org/software/gdb/committee/&lt;br /&gt;
|تاريخ أرشيف=2020-09-24}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== أمثلة تطبيقية ==&lt;br /&gt;
لنأخد بعين الإعتبار الرمز البرمجي المصدري هذا، المكتوب بلغة C:&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
size_t foo_len( const char *s )&lt;br /&gt;
{&lt;br /&gt;
  return strlen( s );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main( int argc, char *argv[] )&lt;br /&gt;
{&lt;br /&gt;
  const char *a = NULL;&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;size of a = %lu\n&amp;quot;, foo_len(a) );&lt;br /&gt;
&lt;br /&gt;
  exit( 0 ); &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;باستعمال [[مجموعة مترجمات جنو]] في نظام [[لينكس]]، يجب معالجة الرمز البرمجي أعلاه باستخدام عَلم &amp;lt;code&amp;gt;-g&amp;lt;/code&amp;gt; لضمان تضمين معلومات التصحيح المناسبة على ملف [[نظام عد ثنائي|نظام العد الثنائي]] (الباينري) الذي تم إنشاؤه. مما يجعل من الممكن فحصها باستخدام مصحح جنو، بافتراض أن الملف الذي يحتوي على الرمز البرمجي أعلاه مسمى باسم ecample.c، أمر التحويل البرمجي لمعالجة الملق يجب أن تكون كالتالي:&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
$ gcc example.c -Og -g -o example&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;ويمكننا الآن تشغيل ملف [[نظام عد ثنائي|الثنائية]] (binary) بالشكل التالي:&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
$ ./example&lt;br /&gt;
Segmentation fault (خطأ في التجزئة)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;بما أن الرمز البرمجي في المثال عند تنفيذه يعطينا خطأ في التجزئة (segmentation fault)، مصحح جنو يمكن استعماله لتفقد المشكلة:&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
$ gdb ./example&lt;br /&gt;
GNU gdb (GDB) Fedora (7.3.50.20110722-13.fc16)&lt;br /&gt;
Copyright (C) 2011 Free Software Foundation, Inc.&lt;br /&gt;
License GPLv3+: GNU GPL version 3 or later &amp;lt;https://gnu.org/licenses/gpl.html&amp;gt;&lt;br /&gt;
This is free software: you are free to change and redistribute it.&lt;br /&gt;
There is NO WARRANTY, to the extent permitted by law. Type &amp;quot;show copying&amp;quot;&lt;br /&gt;
and &amp;quot;show warranty&amp;quot; for details.&lt;br /&gt;
This GDB was configured as &amp;quot;x86_64-redhat-linux-gnu&amp;quot;.&lt;br /&gt;
For bug reporting instructions, please see:&lt;br /&gt;
&amp;lt;https://www.gnu.org/software/gdb/bugs/&amp;gt;...&lt;br /&gt;
Reading symbols from /path/example...done.&lt;br /&gt;
(gdb) run&lt;br /&gt;
Starting program: /path/example&lt;br /&gt;
&lt;br /&gt;
Program received signal SIGSEGV, Segmentation fault.&lt;br /&gt;
0x0000000000400527 in foo_len (s=0x0) at example.c:8&lt;br /&gt;
8 return strlen (s); (هنا يقول لنا أين الخطأ)&lt;br /&gt;
(gdb) print s&lt;br /&gt;
$1 = 0x0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;المشكلة تظهر في السطر الثامن، وتحدث  عند استدعاء الدالة (الوظيفة) &amp;lt;code&amp;gt;[[:en:Strlen#strlen|strlen]]&amp;lt;/code&amp;gt; (لأن حجتها &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; ، لا شيء) (because its argument, &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt;, is &amp;lt;code&amp;gt;[[:en:Null_pointer#Null_pointer|NULL]]&amp;lt;/code&amp;gt;)، الخارج يمكن أن يكون مختلف، وذلك يعود إلى الدالة &amp;lt;code&amp;gt;[[:en:Strlen#strlen|strlen]]&amp;lt;/code&amp;gt; (هل مضمنة أم لا)، عل سبيل المثال:&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot;&amp;gt;&lt;br /&gt;
GNU gdb (GDB) 7.3.1&lt;br /&gt;
Copyright (C) 2011 Free Software Foundation, Inc.&lt;br /&gt;
License GPLv3+: GNU GPL version 3 or later &amp;lt;https://gnu.org/licenses/gpl.html&amp;gt;&lt;br /&gt;
This is free software: you are free to change and redistribute it.&lt;br /&gt;
There is NO WARRANTY, to the extent permitted by law. Type &amp;quot;show copying&amp;quot;&lt;br /&gt;
and &amp;quot;show warranty&amp;quot; for details.&lt;br /&gt;
This GDB was configured as &amp;quot;i686-pc-linux-gnu&amp;quot;.&lt;br /&gt;
For bug reporting instructions, please see:&lt;br /&gt;
&amp;lt;https://www.gnu.org/software/gdb/bugs/&amp;gt;...&lt;br /&gt;
Reading symbols from /tmp/gdb/example...done.&lt;br /&gt;
(gdb) run&lt;br /&gt;
Starting program: /tmp/gdb/example&lt;br /&gt;
&lt;br /&gt;
Program received signal SIGSEGV, Segmentation fault.&lt;br /&gt;
0xb7ee94f3 in strlen () from /lib/i686/cmov/libc.so.6&lt;br /&gt;
(gdb) bt&lt;br /&gt;
#0 0xb7ee94f3 in strlen () from /lib/i686/cmov/libc.so.6&lt;br /&gt;
#1 0x08048435 in foo_len (s=0x0) at example.c:8&lt;br /&gt;
#2 0x0804845a in main (argc=&amp;lt;optimized out&amp;gt;, argv=&amp;lt;optimized out&amp;gt;) at example.c:16&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;لإصلاح المشكل، يجب أن يكون المتغير &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt; على قيمة صالحة (في الدالة &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt;). النسخة الصالحة للرمز البرمجي كالتالي:&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
size_t foo_len( const char *s )&lt;br /&gt;
{&lt;br /&gt;
  return strlen(s);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main( int argc, char *argv[] )&lt;br /&gt;
{&lt;br /&gt;
  const char *a = &amp;quot;This is a test string&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  printf( &amp;quot;size of a = %lu\n&amp;quot;, foo_len(a) );&lt;br /&gt;
&lt;br /&gt;
  exit( 0 );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;بإعادة التحويل البرمجي لترجمة الرمز البرمجي، وإعادة تنفيذه داخل مصحح جنو الآن يعطينا النتائج الصحيحة.&amp;lt;syntaxhighlight lang=&amp;quot;console&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
GNU gdb (GDB) Fedora (7.3.50.20110722-13.fc16)&lt;br /&gt;
Copyright (C) 2011 Free Software Foundation, Inc.&lt;br /&gt;
License GPLv3+: GNU GPL version 3 or later &amp;lt;https://gnu.org/licenses/gpl.html&amp;gt; This is free software: you are free to change and redistribute it.&lt;br /&gt;
There is NO WARRANTY, to the extent permitted by law. Type &amp;quot;show copying&amp;quot; and &amp;quot;show warranty&amp;quot; for details.&lt;br /&gt;
This GDB was configured as &amp;quot;x86_64-redhat-linux-gnu&amp;quot;.&lt;br /&gt;
For bug reporting instructions, please see:&lt;br /&gt;
&amp;lt;https://www.gnu.org/software/gdb/bugs/&amp;gt;...&lt;br /&gt;
Reading symbols from /path/example...done.&lt;br /&gt;
(gdb) run&lt;br /&gt;
Starting program: /path/example&lt;br /&gt;
size of a = 21&lt;br /&gt;
[Inferior 1 (process 14290) exited normally] (انتهى بشكل طبيعي)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;مصحح جنو يطبع خارج دالة &amp;lt;code&amp;gt;printf&amp;lt;/code&amp;gt; في الشاشة، ثم يخبر المستخدم أن البرنامج انتهى بشكل طبيعي.&lt;br /&gt;
&lt;br /&gt;
== المراجع ==&lt;br /&gt;
{{مراجع}}&lt;br /&gt;
&lt;br /&gt;
== وصلات خارجية ==&lt;br /&gt;
* {{روابط برمجيات}}&lt;br /&gt;
* [http://sources.redhat.com/gdb/ الموقع الرسمي لـ GDB]&lt;br /&gt;
{{ضبط استنادي}}&lt;br /&gt;
{{شريط بوابات|برمجة الحاسوب|برمجيات|برمجيات حرة}}&lt;br /&gt;
{{تصنيف كومنز|GNU Debugger}}&lt;br /&gt;
&lt;br /&gt;
[[تصنيف:أدوات برمجة يونكس]]&lt;br /&gt;
[[تصنيف:برمجيات مشروع جنو]]&lt;/div&gt;</summary>
		<author><name>عبد العزيز</name></author>
	</entry>
</feed>