Translation

(itstool) path: sect2/para
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.
537/5280
Context English Persian State
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> صورت‌های کوتاه‌تری دارند که می‌توان در عوض آنها را به‌کار برد. صورت‌های بلندتر برای شفافیت در اینجا به‌کار رفته‌اند.
At the <command>lldb</command> prompt, type <userinput>breakpoint set -n main</userinput>. This will tell the debugger not to display the preliminary set-up code in the program being run and to stop execution at the beginning of the program's code. Now type <userinput>process launch</userinput> to actually start the program— it will start at the beginning of the set-up code and then get stopped by the debugger when it calls <function>main()</function>.
در اعلانِ <command>lldb</command>، وارد کنید <userinput>breakpoint set -n main</userinput>. این به اشکال‌زدا می‌گوید که کد راه‌اندازیِ مقدماتیِ برنامهٔ در حال اجرا را نمایش ندهد و اجرا را در ابتدای کد برنامه متوقف سازد. حال بنویسید <userinput>process launch</userinput> تا برنامه را آغاز کنید— از ابتدای کدِ راه‌اندازی آغاز می‌کند و سپس زمانی‌که اشکال‌زدا <function>main()</function> را صدا می‌زند، متوقف می‌شود.
To step through the program a line at a time, type <userinput>thread step-over</userinput>. When the program gets to a function call, step into it by typing <userinput>thread step-in</userinput>. Once in a function call, return from it by typing <userinput>thread step-out</userinput> or use <userinput>up</userinput> and <userinput>down</userinput> to take a quick look at the caller.
برای آنکه به‌ازای هر خط وارد برنامه شوید، وارد کنید <userinput>thread step-over</userinput>. هنگامی‌که برنامه به یک فراخوان تابع می‌رسد، <userinput>thread step-in</userinput> را وارد کنید تا وارد آن شوید. وقتی داخل فراخوان تابع بودید، <userinput>thread step-out</userinput> را وارد کنید تا از آن خارج شوید یا از <userinput>up</userinput> و <userinput>down</userinput> استفاده کنید تا نگاهی سریع به فراخوان داشته باشید.
Here is a simple example of how to spot a mistake in a program with <command>lldb</command>. This is our program (with a deliberate mistake):
در اینجا مثالی ساده از چگونگی تشخیص اشتباه در یک برنامه به‌وسیلهٔ <command>lldb</command> آمده است. این برنامهٔ ماست (با اشتباهی عمدی):
#include &lt;stdio.h&gt;

int bazz(int anint);

main() {
int i;

printf("This is my program\n");
bazz(i);
return 0;
}

int bazz(int anint) {
printf("You gave me %d\n", anint);
return anint;
}
#include &lt;stdio.h&gt;

int bazz(int anint);

main() {
int i;

printf("This is my program\n");
bazz(i);
return 0;
}

int bazz(int anint) {
printf("You gave me %d\n", anint);
return anint;
}
This program sets <symbol>i</symbol> to be <literal>5</literal> and passes it to a function <function>bazz()</function> which prints out the number we gave it.
این برنامه مقدار <symbol>i</symbol> را <literal>5</literal> قرار می‌دهد و آن را به تابعِ <function>bazz()</function> می‌دهد که شماره‌ای که ما به آن داده‌ایم را چاپ می‌کند.

Loading…

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> را در آنجا نیز نصب کنید. در کنار مجموعه‌ای از صفحات اطلاعات، راهنمای برخطِ بسیار خوبی نیز دارد.
a month ago
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> را در آنجا نیز نصب کنید.در کنار مجموعه‌ای از صفحات اطلاعات، راهنمای برخطِ بسیار خوبی نیز دارد.
a month ago
Browse all component changes

Glossary

English Persian
Manual page صفحهٔ راهنما FreeBSD Doc
Debugger اشکال‌زدا FreeBSD Doc
Ports Collection مجموعه پورت‌ها FreeBSD Doc

Source information

Source string comment
(itstool) path: sect2/para
Labels
No labels currently set.
Source string location
book.translate.xml:1748
Source string age
2 months ago
Translation file
books/fa/developers-handbook.po, string 323