Translation

(itstool) path: sect2/title
Introduction to Available Debuggers
33/350
Context English Persian State
The source code for the program is compiled. In effect, we change to the directory where the source was unpacked and do <command>make</command>—the program's own make file has the necessary information to build the program.
کد منبع برنامه همگردان شده است. به‌طور خلاصه، ما مسیری که منبع در آن باز شده است را تغییر می‌دهیم و <command>make</command> می‌کنیم—پروندهٔ make خودِ برنامه اطلاعات لازم برای ساختن برنامه را دارد.
We now have a compiled version of the program. If we wish, we can test it now; when we feel confident about the program, we can type <userinput>make install</userinput>. This will cause the program and any supporting files it needs to be copied into the correct location; an entry is also made into a <database>package database</database>, so that the port can easily be uninstalled later if we change our mind about it.
ما اکنون نسخه‌ای همگردان‌شده از برنامه را در اختیار داریم. اگر بخواهیم، می‌توانیم تست کنیم؛ هر زمان که در مورد برنامه احساس اطمینان کنیم، می‌توانیم بنویسیم <userinput>make install</userinput>. این باعث می‌شود برنامه به‌همراه تمام پرونده‌های پشتیبانی موردنیازش در مسیر درست کپی شوند؛ همچنین داده‌ای در <database>package database</database> ثبت می‌شود، در نتیجه اگر زمانی تغییر نظر بدهیم، پورت به‌راحتی می‌تواند پاک شود.
Now I think you will agree that is rather impressive for a four line script!
اکنون به گمانم موافق هستید که این برای یک اجرانامهٔ چهار خطی بسیار تحسین برانگیز است!
The secret lies in the last line, which tells <command>make</command> to look in the system makefile called <filename>bsd.port.mk</filename>. It is easy to overlook this line, but this is where all the clever stuff comes from—someone has written a makefile that tells <command>make</command> to do all the things above (plus a couple of other things I did not mention, including handling any errors that may occur) and anyone can get access to that just by putting a single line in their own make file!
راز آن در آخرین خط نهفته است، آنجا که به <command>make</command> می‌گوید داخل makefile سامانه به نام <filename>bsd.port.mk</filename> را نگاه کن. غفلت از این خط آسان است، اما اینجا همان بخشی است که تمام مسائل هوشمندانه می‌آیند—کسی یک makefile نوشته است که به <command>make</command> می‌گوید تمام کارهای بالا را انجام دهد (افزون بر تعدادی کارهای دیگر، مانند رسیدگی به هرگونه خطای احتمالی) و هرکس می‌تواند تنها با اضافه کردن یک خط درون پروندهٔ make خود به آن دست‌یابد!
If you want to have a look at these system makefiles, they are in <filename>/usr/share/mk</filename>, but it is probably best to wait until you have had a bit of practice with makefiles, as they are very complicated (and if you do look at them, make sure you have a flask of strong coffee handy!)
اگر می‌خواهید نگاهی به این پرونده‌های make در سامانه داشته باشید، آنها در <filename>/usr/share/mk</filename> هستند، اما احتمالاً بهتر است منتظر بمانید تا زمانی‌که اندکی تمرین با آنها داشته باشید، زیرا بسیار پیچیده‌اند (و اگر آنها را نگاه کردید، مطمئن شوید یک فلاسک قهوهٔ قوی دم دستتان باشد!)
More Advanced Uses of <command>make</command>
کاربردهای حرفه‌ای‌تر <command>make</command>
<command>Make</command> is a very powerful tool, and can do much more than the simple example above shows. Unfortunately, there are several different versions of <command>make</command>, and they all differ considerably. The best way to learn what they can do is probably to read the documentation—hopefully this introduction will have given you a base from which you can do this.
<command>Make</command> ابزار بسیار قدرتمندی است، و می‌تواند کارهای بسیار بیشتری نسبت به آنچه در مثال بالا مشاهده کردید را انجام دهد. متأسفانه، نسخه‌های مختلفی از <command>make</command> وجود دارد، و آنها به‌شکل قابل‌توجهی متفاوت از یکدیگرند. بهترین روش برای یادگیری آنها مطالعهٔ مستندات است—خوشبختانه این پیش‌درآمد پایه‌ای برای شما فراهم کرده است که به‌کمک آن این امر میسر می‌شود.
The version of make that comes with FreeBSD is the <application>Berkeley make</application>; there is a tutorial for it in <filename>/usr/share/doc/psd/12.make</filename>. To view it, do
نسخه‌ای که به‌همراه FreeBSD می‌آید <application>Berkeley make</application> است؛ آموزه‌ای در مسیرِ <filename>/usr/share/doc/psd/12.make</filename> بدین منظور در دسترس است. برای مشاهدهٔ آن، وارد کنید
<prompt>%</prompt> <userinput>zmore paper.ascii.gz</userinput>
<prompt>%</prompt> <userinput>zmore paper.ascii.gz</userinput>
in that directory.
در همان مسیر.
Many applications in the ports use <application>GNU make</application>, which has a very good set of <quote>info</quote> pages. If you have installed any of these ports, <application>GNU make</application> will automatically have been installed as <command>gmake</command>. It is also available as a port and package in its own right.
بسیاری از برنامه‌های موجود در پورت‌ها از <application>GNU make</application> استفاده می‌کنند، که شامل مجموعه‌ای بسیار خوب از صفحات <quote>اطلاعات</quote> هستند. اگر هرکدام از این پورت‌ها را نصب کرده باشید، <application>GNU make</application> به‌طور خودکار تحت عنوان <command>gmake</command> نصب خواهد شد. همچنین به‌عنوان پورت و بسته‌ای جدا در دسترس است.
To view the info pages for <application>GNU make</application>, you will have to edit <filename>dir</filename> in the <filename>/usr/local/info</filename> directory to add an entry for it. This involves adding a line like
برای آنکه صفحهٔ اطلاعاتِ <application>GNU make</application> را ببینید، لازم است <filename>dir</filename> در مسیر <filename>/usr/local/info</filename> را ویرایش کنید تا ورودی‌ای برای آن اضافه کنید. این شامل اضافه‌کردن خطی مانند
* Make: (make). The GNU Make utility.
* Make: (make). The GNU Make utility.
to the file. Once you have done this, you can type <userinput>info</userinput> and then select <guimenuitem>make</guimenuitem> from the menu (or in <application>Emacs</application>, do <userinput>C-h i</userinput>).
به پرونده است. پس از انجام این کار، می‌توانید عبارت <userinput>info</userinput> را وارد کنید و سپس <guimenuitem>make</guimenuitem> را از فهرست انتخاب کنید (یا در محیطِ <application>Emacs</application>، بزنید <userinput>C-h i</userinput>).
Debugging
اشکال‌زدایی
Introduction to Available Debuggers
پیش‌درآمدی بر اشکال‌زدا‌های موجود
Using a debugger allows running the program under more controlled circumstances. Typically, it is possible to step through the program a line at a time, inspect the value of variables, change them, tell the debugger to run up to a certain point and then stop, and so on. It is also possible to attach to a program that is already running, or load a core file to investigate why the program crashed. It is even possible to debug the kernel, though that is a little trickier than the user applications we will be discussing in this section.
استفاده از اشکال‌زدا این امکان را فراهم می‌کند تا برنامه را تحت شرایط کنترل‌شده‌تری راه‌اندازی کنیم. به‌طور معمول، این امکان هست تا هربار وارد یک خط از برنامه شد، ارزش متغیرها را وارسی کرد، آنها را تغییر داد، به اشکال‌زدا گفت که تا کدام مرحله اجرا و سپس توقف کند، و به‌همین ترتیب. همچنین ممکن است یک برنامهٔ در حال اجرا را به آن ضمیمه کرد، یا یک پروندهٔ حافظه (core) را جهت بررسی علل خراب‌شدن برنامه بار کرد. حتی امکان اشکال‌زدایی هسته نیز وجود دارد، گرچه این کمی پیچیده‌تر از اشکال‌زدایی برنامه‌هایی است که ما قرار است در این بخش مطرح کنیم.
This section is intended to be a quick introduction to using debuggers and does not cover specialized topics such as debugging the kernel. For more information about that, refer to <xref linkend="kerneldebug"/>.
این بخش به‌عنوان پیش‌درآمدی سریع بر استفاده از اشکال‌زداها در نظر گرفته شده است و موضوعات تخصصی چون اشکال‌زداییِ هسته را پوشش نمی‌دهد. برای اطلاعات بیشتر در آن مورد، به <xref linkend="kerneldebug"/> رجوع کنید.
The standard debugger supplied with FreeBSD 12.1 is called <command>lldb</command> (<application>LLVM debugger</application>). As it is part of the standard installation for that release, there is no need to do anything special to use it. It has good command help, accessible via the <userinput>help</userinput> command, as well as <link xlink:href="https://lldb.llvm.org/">a web tutorial and documentation</link>.
اشکال‌زدای استانداردِ عرضه‌شده با FreeBSD نسخهٔ 12.1 <command>lldb</command> (<application>LLVM debugger</application>) نام دارد. نیاز به انجام کار خاصی به‌منظور استفاده از آن نیست، زیرا قسمتی از نصب استاندارد آن توزیع هست. دارای دستور کمک مناسبی است، قابل‌دسترس از طریق دستور <userinput>help</userinput>، و نیز <link xlink:href="https://lldb.llvm.org/">آموزه و مستندات تحت وب</link>.
The <command>lldb</command> command is available for FreeBSD 11.3 <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/handbook/ports-using.html">from ports or packages</link> as <package>devel/llvm</package>. This will install the default version of lldb (currently 9.0).
دستور <command>lldb</command> در FreeBSD 11.3 به‌عنوان <package>devel/llvm</package> در <link xlink:href="@@URL_RELPREFIX@@/doc/fa_IR.UTF-8/books/handbook/ports-using.html">پورت‌ها یا بسته‌ها</link> موجود است. این نسخهٔ پیش‌فرض lldb را نصب می‌کند (در حال حاضر 9.0).
The other debugger available with FreeBSD is called <command>gdb</command> (<application>GNU debugger</application>). Unlike lldb, it is not installed by default on FreeBSD 12.1; to use it, <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/handbook/ports-using.html">install</link> <package>devel/gdb</package> from ports or packages. The version installed by default on FreeBSD 11.3 is old; instead, install <package>devel/gdb</package> there as well. It has quite good on-line help, as well as a set of info pages.
اشکال‌زدای دیگری که در FreeBSD هست <command>gdb</command> (<application>GNU debugger</application>) نام دارد. برخلاف lldb، به‌طور پیش‌فرض در FreeBSD 12.1 نصب نشده است؛ برای استفاده از آن، <package>devel/gdb</package> را از طریق پورت یا بسته‌ها <link xlink:href="@@URL_RELPREFIX@@/doc/en_US.ISO8859-1/books/handbook/ports-using.html">نصب کنید</link>. نسخهٔ از پیش نصب‌شدهٔ موجود در FreeBSD 11.3 قدیمی است؛ در عوض، <package>devel/gdb</package> را در آنجا نیز نصب کنید. در کنار مجموعه‌ای از صفحات اطلاعات، راهنمای برخطِ بسیار خوبی نیز دارد.
Which one to use is largely a matter of taste. If familiar with one only, use that one. People familiar with neither or both but wanting to use one from inside <application>Emacs</application> will need to use <command>gdb</command> as <command>lldb</command> is unsupported by <application>Emacs</application>. Otherwise, try both and see which one you prefer.
اینکه کدام یک را استفاده کنید تا حد زیادی به سلیقهٔ شما برمی‌گردد. اگر فقط با یکی از آنها آشنا هستید، از همان استفاده کنید. اشخاصی که با هردوی آنها آشنایی دارند یا هیچکدام را نمی‌شناسند اما می‌خواهند یک کدام را از داخل <application>Emacs</application> استفاده کنند لازم است از <command>gdb</command> استفاده کنند زیرا <command>lldb</command> توسط <application>Emacs</application> پشتیبانی نمی‌شود. در غیر این صورت، هر دو را استفاده کنید و ببینید کدام را ترجیح می‌دهید.
Using lldb
استفاده از lldb
Starting lldb
راه‌اندازیِ lldb
Start up lldb by typing
lldb را با نوشتن عبارات زیر راه‌اندازی کنید
<prompt>%</prompt> <userinput>lldb -- <replaceable>progname</replaceable></userinput>
<prompt>%</prompt> <userinput>lldb -- <replaceable>progname</replaceable></userinput>
Running a Program with lldb
اجرای برنامه با lldb
Compile the program with <option>-g</option> to get the most out of using <command>lldb</command>. It will work without, but will only display the name of the function currently running, instead of the source code. If it displays a line like:
برنامه را با<option>-g</option> همگردان کنید تا بیشترین بهره را از استفادهٔ <command>lldb</command> ببرید. بدون آن نیز کار خواهد کرد، اما به‌جای کد منبع، تنها نام تابعِ در حال اجرا به شما نشان داده خواهد شد. اگر خطی مانند این را نمایش می‌دهد:
Breakpoint 1: where = temp`main, address = …
Breakpoint 1: where = temp`main, address = …
(without an indication of source code filename and line number) when setting a breakpoint, this means that the program was not compiled with <option>-g</option>.
(بدون هیچ اشاره‌ای به نام پرونده و شماره خطِ کد منبع) هنگامی‌که نقطهٔ توقف را تعیین می‌کنیم، بدان معناست که برنامه بدون <option>-g</option> همگردان شده است.
Most <command>lldb</command> commands have shorter forms that can be used instead. The longer forms are used here for clarity.
بیشتر دستورات <command>lldb</command> صورت‌های کوتاه‌تری دارند که می‌توان در عوض آنها را به‌کار برد. صورت‌های بلندتر برای شفافیت در اینجا به‌کار رفته‌اند.

Loading…

Introduction to Available Debuggers
پیش‌درآمدی بر اشکال‌یاب‌هازدا‌های موجود
a month ago
Introduction to Available Debuggers
پیش‌درآمدی بر برنامه‌نویسیاشکال‌یاب‌ها
a month ago
User avatar None

Source string changed

FreeBSD Doc / books_developers-handbookPersian

Introduction to ProgrammingAvailable Debuggers
a month ago
Browse all component changes

Glossary

English Persian
introduction پیش‌درآمد FreeBSD Doc

Source information

Source string comment
(itstool) path: sect2/title
Labels
No labels currently set.
Source string location
book.translate.xml:1713
Source string age
a month ago
Translation file
books/fa/developers-handbook.po, string 318