.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "GDBSERVER 1" .TH GDBSERVER 1 "2025-12-20" "gdb-17.1" "GNU Development Tools" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" ppc64le\-elf\-gdbserver \- سرور راه‌دور برای اشکال‌زدای گنو (GNU Debugger) .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" gdbserver \fIcomm\fR \fIprog\fR [\fIargs\fR...] .PP gdbserver \-\-attach \fIcomm\fR \fIpid\fR .PP gdbserver \-\-multi \fIcomm\fR .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" \&\fBgdbserver\fR برنامه‌ای است که به شما امکان می‌دهد \s-1GDB\s0 را روی دستگاهی متفاوت از دستگاه اجراکنندهٔ برنامهٔ در حال اشکال‌زدایی اجرا کنید. .PP نحوه استفاده (سمت سرور (هدف)): .PP ابتدا باید یک نسخه از برنامه‌ای را که می‌خواهید اشکال‌زدایی کنید روی سیستم هدف (target) قرار دهید. در صورت نیاز برای صرفه‌جویی در فضا، می‌توان نمادهای برنامه را حذف (strip) کرد، چرا که \&\fBgdbserver\fR نیازی به نمادها ندارد. تمام مدیریت نمادها بر عهدهٔ \s-1GDB\s0 در حال اجرا روی سیستم میزبان (host) است. .PP برای استفاده از سرور، وارد سیستم هدف شوید و برنامهٔ \fBgdbserver\fR را اجرا کنید. باید موارد زیر را به آن اعلام کنید: (الف) چگونگی برقراری ارتباط با \s-1GDB،\s0 (ب) نام برنامه، و (ج) آرگومان‌های آن. نحو کلی به این صورت است: .PP .Vb 1 \& target> gdbserver [ ...] .Ve .PP به عنوان مثال، هنگام استفاده از درگاه سریال، می‌توانید دستور زیر را وارد کنید: .PP .Vb 1 \& target> gdbserver /dev/com1 emacs foo.txt .Ve .PP این دستور به \fBgdbserver\fR می‌گوید که emacs را با آرگومان foo.txt اشکال‌زدایی کند و از طریق \fI/dev/com1\fR با \s-1GDB\s0 ارتباط برقرار سازد. اکنون \fBgdbserver\fR منتظر می‌ماند تا \s-1GDB\s0 میزبان با آن ارتباط برقرار کند. .PP برای استفاده از یک اتصال \s-1TCP\s0، می‌توانید این دستور را به کار ببرید: .PP .Vb 1 \& target> gdbserver host:2345 emacs foo.txt .Ve .PP این دستور دقیقاً مشابه مثال قبلی عمل می‌کند، با این تفاوت که ارتباط با \s-1GDB\s0 در \f(CW\*(C`host\*(C'\fR از طریق \s-1TCP\s0 صورت می‌گیرد. آرگومان \f(CW\*(C`host:2345\*(C'\fR به این معنی است که انتظار یک اتصال \s-1TCP\s0 از سمت \f(CW\*(C`host\*(C'\fR به پورت محلی \s-1TCP\s0 شمارهٔ 2345 را داریم. (در حال حاضر، بخش \f(CW\*(C`host\*(C'\fR نادیده گرفته می‌شود.) تا زمانی که شماره پورت با پورت‌های فعال دیگر \s-1TCP\s0 در سیستم هدف تداخل نداشته باشد، می‌توانید هر شماره‌ای را که می‌خواهید انتخاب کنید. همین شماره پورت باید در دستور \f(CW\*(C`target remote\*(C'\fR برنامهٔ GDB میزبان (که به زودی شرح داده خواهد شد) استفاده شود. توجه داشته باشید که اگر شماره پورتی را انتخاب کنید که با سرویس دیگری تداخل دارد، \fBgdbserver\fR پیامی خطا چاپ کرده و خارج خواهد شد. .PP همچنین \fBgdbserver\fR می‌تواند به برنامه‌های در حال اجرا متصل شود. این کار از طریق آرگومان \fB\-\-attach\fR انجام می‌پذیرد. نحو دستور به صورت زیر است: .PP .Vb 1 \& target> gdbserver \-\-attach .Ve .PP \&\fIpid\fR شناسهٔ فرایند یک فرایند در حال اجرا است. نیازی به مشخص کردن مسیر فایل باینری فرایند در حال اجرا برای \fBgdbserver\fR نیست. .PP برای راه‌اندازی \f(CW\*(C`gdbserver\*(C'\fR بدون تعیین دستور اولیه برای اجرا یا شناسه فرایند برای متصل شدن، از گزینه خط فرمانی \fB\-\-multi\fR استفاده کنید. در این حالت، باید با استفاده از \f(CW\*(C`target extended\-remote\*(C'\fR متصل شوید تا بتوانید برنامهٔ مورد نظر برای اشکال‌زدایی را اجرا کنید. .PP .Vb 1 \& target> gdbserver \-\-multi .Ve .PP نحوه استفاده (سمت میزبان): .PP شما به یک نسخه دارای نماد (unstripped) از برنامهٔ هدف روی سیستم میزبان خود نیاز دارید، چرا که \s-1GDB\s0 باید جدول نمادها و اطلاعات مرتبط آن را بررسی کند. \s-1GDB\s0 را طبق روال معمول راه‌اندازی کنید، به‌طوری که برنامه هدف آرگومان اول آن باشد. (اگر خط سریال با سرعتی غیر از 9600 باود کار می‌کند، ممکن است نیاز به استفاده از گزینهٔ \fB\-\-baud\fR داشته باشید.) این دستور به صورت \f(CW\*(C`gdb TARGET\-PROG\*(C'\fR یا \f(CW\*(C`gdb \-\-baud BAUD TARGET\-PROG\*(C'\fR خواهد بود. پس از آن، تنها دستور جدیدی که باید بدانید \f(CW\*(C`target remote\*(C'\fR (یا \f(CW\*(C`target extended\-remote\*(C'\fR) است. آرگومان آن یا نام یک دستگاه است (معمولاً یک دستگاه سریال مانند \fI/dev/ttyb\fR) یا یک توصیف‌کننده به شکل \f(CW\*(C`HOST:PORT\*(C'\fR. برای مثال: .PP .Vb 1 \& (gdb) target remote /dev/ttyb .Ve .PP از طریق خط سریال \fI/dev/ttyb\fR با سرور ارتباط برقرار می‌کند، و دستور: .PP .Vb 1 \& (gdb) target remote the\-target:2345 .Ve .PP از طریق یک اتصال \s-1TCP\s0 به پورت 2345 روی میزبان `the\-target'، جایی که قبلاً \fBgdbserver\fR را با همان شماره پورت اجرا کرده‌اید، ارتباط برقرار می‌کند. توجه داشته باشید که در اتصالات \s-1TCP\s0، حتماً باید پیش از اجرای دستور `target remote'، برنامهٔ \fBgdbserver\fR را راه‌اندازی کرده باشید؛ در غیر این صورت ممکن است با خطایی شبیه به `Connection refused' مواجه شوید. .PP همچنین \fBgdbserver\fR می‌تواند چندین برنامهٔ تحت‌نظارت (inferior) را به‌طور هم‌زمان اشکال‌زدایی کند؛ این موضوع در دفترچه راهنمای \s-1GDB\s0 ذیل بخش \f(CW\*(C`Inferiors Connections and Programs\*(C'\fR \*(-- دستور خط فرمان شل: \f(CW\*(C`info \-f gdb \-n \*(AqInferiors Connections and Programs\*(Aq\*(C'\fR شرح داده شده است. در چنین حالتی از نوع دیگر این دستور در \s-1GDB\s0 یعنی \f(CW\*(C`extended\-remote\*(C'\fR استفاده کنید: .PP .Vb 1 \& (gdb) target extended\-remote the\-target:2345 .Ve .PP در چنین مواردی استفاده از گزینهٔ \fB\-\-multi\fR در \fBgdbserver\fR اختیاری است. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" سه حالت مختلف برای فراخوانی \fBgdbserver\fR وجود دارد: .IP "\(bu" 4 اشکال‌زدایی یک برنامه خاص با مشخص کردن نام فایل برنامه: .Sp .Vb 1 \& gdbserver [...] .Ve .Sp پارامتر \fIcomm\fR نحوه برقراری ارتباط سرور با \s-1GDB\s0 را مشخص می‌کند؛ این پارامتر می‌تواند نام یک دستگاه (جهت استفاده از خط سریال)، یک شماره پورت \s-1TCP\s0 (\f(CW\*(C`:1234\*(C'\fR)، یا \f(CW\*(C`\-\*(C'\fR یا \f(CW\*(C`stdio\*(C'\fR برای استفاده از ورودی/خروجی استاندارد (stdin/stdout) برنامهٔ \f(CW\*(C`gdbserver\*(C'\fR باشد. نام برنامه‌ای را که قصد اشکال‌زدایی آن را دارید در \fIprog\fR تعیین کنید. سایر آرگومان‌های باقی‌مانده بدون تغییر به برنامه ارسال می‌شوند. با اتمام اجرای برنامه، \s-1GDB\s0 اتصال را می‌بندد و \f(CW\*(C`gdbserver\*(C'\fR خارج می‌شود. .IP "\(bu" 4 اشکال‌زدایی یک برنامهٔ خاص با تعیین شناسه فرایند (\s-1PID\s0) یک برنامه در حال اجرا: .Sp .Vb 1 \& gdbserver \-\-attach .Ve .Sp پارامتر \fIcomm\fR مطابق توضیحات بالا است. شناسه فرایند در حال اجرا را در \fIpid\fR مشخص کنید؛ سایر مراحل را \s-1GDB\s0 به صورت خودکار انجام می‌دهد. مانند حالت قبل، پس از خاتمه فرایند \fIpid\fR، برنامه \s-1GDB\s0 اتصال را می‌بندد و \f(CW\*(C`gdbserver\*(C'\fR خارج خواهد شد. .IP "\(bu" 4 حالت چندفرایندی \*(-- اشکال‌زدایی هم‌زمان بیش از یک برنامه/فرایند: .Sp .Vb 1 \& gdbserver \-\-multi .Ve .Sp در این حالت، \s-1GDB\s0 می‌تواند تعیین کند که چه دستور(هایی) توسط \fBgdbserver\fR اجرا شوند. بر خلاف دو حالت دیگر، \s-1GDB\s0 پس از پایان فرایند تحت اشکال‌زدایی، اتصال را قطع نمی‌کند؛ بنابراین می‌توانید چندین فرایند مختلف را در طول یک نشست اشکال‌زدایی کنید. .PP در هر یک از این حالت‌ها می‌توانید گزینه‌های زیر را تعیین کنید: .IP "\fB\-\-help\fR" 4 .IX Item "--help" نمایش فهرستی از تمام گزینه‌ها به همراه توضیحات کوتاه. .IP "\fB\-\-version\fR" 4 .IX Item "--version" این گزینه باعث چاپ شماره نسخهٔ \fBgdbserver\fR و خروج از برنامه می‌شود. .IP "\fB\-\-attach\fR" 4 .IX Item "--attach" اتصال \fBgdbserver\fR به یک برنامهٔ در حال اجرا. نحو دستور به این صورت است: .Sp .Vb 1 \& target> gdbserver \-\-attach .Ve .Sp \&\fIpid\fR شناسه فرایند مربوط به یک فرایند در حال اجرا است. نیازی به تعیین مسیر فایل باینری فرایند برای \fBgdbserver\fR نیست. .IP "\fB\-\-multi\fR" 4 .IX Item "--multi" برای اجرای \f(CW\*(C`gdbserver\*(C'\fR بدون نیاز به مشخص کردن دستور اولیه جهت اجرا یا شناسه فرایند برای اتصال، از این گزینه خط فرمانی استفاده کنید. سپس می‌توانید با دستور \f(CW\*(C`target extended\-remote\*(C'\fR متصل شده و برنامهٔ مورد نظر برای اشکال‌زدایی را آغاز نمایید. نحو دستور: .Sp .Vb 1 \& target> gdbserver \-\-multi .Ve .IP "\fB\-\-debug\fR[\fB=option1,option2,...\fR]" 4 .IX Item "--debug[=option1,option2,...]" دستور به \f(CW\*(C`gdbserver\*(C'\fR جهت نمایش اطلاعات تکمیلی از وضعیت فرایند اشکال‌زدایی. این گزینه بیشتر برای توسعهٔ \f(CW\*(C`gdbserver\*(C'\fR و ارسال گزارش‌های خطا به توسعه‌دهندگان طراحی شده است. .Sp هر \fIoption\fR نام مؤلفه‌ای است که باید اشکال‌زدایی برای آن فعال گردد. گزینه‌های مجاز عبارتند از: \fBall\fR، \&\fBthreads\fR، \fBevent-loop\fR و \fBremote\fR. گزینهٔ ویژهٔ \fBall\fR تمامی مؤلفه‌ها را فعال می‌کند. این فهرست گزینه‌ها از چپ به راست ارزیابی می‌شود، و می‌توان یک گزینه را با نویسهٔ \&\f(CW\*(C`\-\*(C'\fR آغاز کرد تا خروجی اشکال‌زدایی آن مؤلفه غیرفعال شود؛ به عنوان مثال می‌توانید بنویسید: .Sp .Vb 1 \& target> gdbserver \-\-debug=all,\-event\-loop .Ve .Sp تا خروجی اشکال‌زدایی برای تمام مؤلفه‌ها به جز \fBevent-loop\fR فعال گردد. در صورتی که هیچ آرگومانی به \fB\-\-debug\fR ارسال نشود، عملکرد آن معادل با \fB\-\-debug=threads\fR در نظر گرفته می‌شود. این رفتار ممکن است در نگارش‌های بعدی \f(CW\*(C`gdbserver\*(C'\fR تغییر کند. .IP "\fB\-\-debug\-file=\fR\fIfilename\fR" 4 .IX Item "--debug-file=filename" به \f(CW\*(C`gdbserver\*(C'\fR دستور می‌دهد تا هرگونه خروجی اشکال‌زدایی را به \fIfilename\fR مشخص‌شده ارسال کند. این گزینه برای توسعهٔ \f(CW\*(C`gdbserver\*(C'\fR و ارسال گزارش خطا به توسعه‌دهندگان در نظر گرفته شده است. .IP "\fB\-\-debug\-format=option1\fR[\fB,option2,...\fR]" 4 .IX Item "--debug-format=option1[,option2,...]" به \f(CW\*(C`gdbserver\*(C'\fR دستور می‌دهد تا اطلاعات بیشتری را در هر سطر از خروجی اشکال‌زدایی بگنجاند. .IP "\fB\-\-wrapper\fR" 4 .IX Item "--wrapper" یک wrapper را برای راه‌اندازی برنامه‌ها جهت اشکال‌زدایی مشخص می‌کند. در ادامهٔ این گزینه باید ابتدا نام wrapper، سپس آرگومان‌های خط فرمانی که باید به آن ارسال شوند، و در نهایت \&\f(CW\*(C`\-\-\*(C'\fR به نشانهٔ پایان آرگومان‌های wrapper قرار گیرد. .IP "\fB\-\-once\fR" 4 .IX Item "--once" به‌طور پیش‌فرض، \fBgdbserver\fR پورت شنود \s-1TCP\s0 را باز نگه می‌دارد تا اتصالات بعدی امکان‌پذیر باشند. با این حال، اگر \f(CW\*(C`gdbserver\*(C'\fR را با گزینهٔ \fB\-\-once\fR آغاز کنید، پس از برقراری اتصال با اولین نشست \s-1GDB\s0، گوش دادن به تلاش‌های دیگر برای اتصال را متوقف خواهد کرد. .SH "محیط (ENVIRONMENT)" .IX Header "ENVIRONMENT" .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" مستندات کامل \s-1GDB\s0 در قالب یک راهنمای Texinfo نگهداری می‌شود. اگر برنامه‌های \f(CW\*(C`info\*(C'\fR و \f(CW\*(C`gdb\*(C'\fR و مستندات Texinfo مربوط به \s-1GDB\s0 به‌درستی بر روی سیستم شما نصب شده باشند، دستور .PP .Vb 1 \& info gdb .Ve .PP باید دسترسی به راهنمای کامل را برای شما فراهم کند. .PP \&\fIUsing \s-1GDB: A\s0 Guide to the \s-1GNU\s0 Source-Level Debugger\fR، Richard M. Stallman و Roland H. Pesch، ژوئیه ۱۹۹۱. .SH "حق نشر (COPYRIGHT)" .IX Header "COPYRIGHT" حق نشر (c) 1988\-2025 Free Software Foundation, Inc. .PP اجازه کپی، توزیع و/یا تغییر این سند تحت شرایط «مجوز مستندات آزاد گنو» (\s-1GNU\s0 Free Documentation License)، نسخه ۱.۳ یا هر نسخهٔ بعدی منتشرشده توسط بنیاد نرم‌افزارهای آزاد صادر می‌شود؛ همراه با بخش‌های تغییرناپذیر شامل \*(L"Free Software\*(R" و \*(L"Free Software Needs Free Documentation\*(R"، با متون روی جلد شامل \*(L"A \s-1GNU\s0 Manual،\*(R" و متون پشت جلد به‌صورت بند (الف) در زیر. .PP (الف) متن پشت جلد \s-1FSF\s0 عبارت است از: \*(L"You are free to copy and modify this \s-1GNU\s0 Manual. Buying copies from \s-1GNU\s0 Press supports the \s-1FSF\s0 in developing \s-1GNU\s0 and promoting software freedom.\*(R"