این دستور gdbserver است که می تواند در ارائه دهنده میزبانی رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
gdbserver - سرور راه دور برای دیباگر گنو
خلاصه
gdbserver COMM پرسه زدن [قوس...]
gdbserver --پیوست COMM pid
gdbserver --multi COMM
شرح
gdbserver برنامه ای است که به شما امکان می دهد GDB را روی دستگاهی متفاوت از دستگاه اجرا کنید
که در حال اجرای برنامه در حال رفع اشکال است.
استفاده (سمت سرور (هدف)):
ابتدا باید یک کپی از برنامه ای که می خواهید اشکال زدایی کنید را روی هدف قرار دهید
سیستم. این برنامه را می توان برای صرفه جویی در فضا در صورت نیاز حذف کرد gdbserver اهمیتی نمی دهد
در مورد نمادها تمام مدیریت نمادها توسط GDB در حال اجرا بر روی میزبان انجام می شود
سیستم.
برای استفاده از سرور، وارد سیستم مورد نظر شده و آن را اجرا کنید gdbserver برنامه شما
باید به آن بگویید (الف) چگونه با GDB ارتباط برقرار کند، (ب) نام برنامه شما، و (ج) آن
استدلال ها نحو کلی عبارت است از:
target> gdbserver [ ...]
به عنوان مثال، با استفاده از یک پورت سریال، ممکن است بگویید:
target> gdbserver /dev/com1 emacs foo.txt
این می گوید gdbserver برای اشکال زدایی emacs با آرگومان foo.txt و برقراری ارتباط با
GDB از طریق /dev/com1. gdbserver اکنون صبورانه منتظر است تا GDB میزبان با آن ارتباط برقرار کند.
برای استفاده از اتصال TCP، می توانید بگویید:
target> gdbserver host:2345 emacs foo.txt
این تقریباً همان چیزی را می گوید که نمونه آخر بود، با این تفاوت که ما می خواهیم
از طریق TCP با GDB "میزبان" ارتباط برقرار کنید. آرگومان "host:2345" به این معنی است که ما هستیم
انتظار مشاهده اتصال TCP از "میزبان" به پورت TCP محلی 2345. (در حال حاضر،
بخش "میزبان" نادیده گرفته می شود.) می توانید هر عددی را که می خواهید برای شماره پورت انتخاب کنید
زیرا با هیچ یک از پورت های TCP موجود در سیستم هدف تضاد ندارد. همین پورت
شماره باید در دستور "target remote" میزبان GDBs استفاده شود که توضیح داده خواهد شد
به زودی توجه داشته باشید که اگر شماره پورتی را انتخاب کرده اید که با سرویس دیگری تضاد دارد،
gdbserver یک پیغام خطا چاپ می کند و خارج می شود.
gdbserver همچنین می تواند به برنامه های در حال اجرا متصل شود. این از طریق انجام می شود -- ضمیمه کردن
بحث و جدل. نحو عبارت است از:
target> gdbserver --attach
pid شناسه فرآیند یک فرآیند در حال اجرا است. لزومی به اشاره نیست
gdbserver در یک باینری برای فرآیند در حال اجرا.
برای راه اندازی "gdbserver" بدون ارائه دستور اولیه برای اجرا یا پردازش ID برای پیوست کردن،
با استفاده از -- چند گزینه خط فرمان در چنین مواردی باید با استفاده از "target" وصل شوید
Extended-Remote" برای شروع برنامه ای که می خواهید اشکال زدایی کنید.
target> gdbserver --multi
استفاده (سمت میزبان):
از آنجایی که GDB به این نیاز دارد، شما نیاز به یک کپی از برنامه هدف در سیستم میزبان خود دارید
جداول نماد آن و موارد دیگر را بررسی کنید. GDB را همانطور که معمولاً انجام می دهید، با هدف راه اندازی کنید
برنامه به عنوان اولین آرگومان (شاید نیاز به استفاده از --باد گزینه اگر خط سریال
در هر چیزی به جز 9600 baud اجرا می شود.) یعنی "gdb TARGET-PROG"، یا "gdb --baud BAUD"
TARGET-PROG". پس از آن، تنها دستور جدیدی که باید در مورد آن بدانید "target remote" است.
(یا "هدف توسعه یافته از راه دور"). آرگومان آن یا نام دستگاه است (معمولاً یک سریال
دستگاه، مانند /dev/ttyb)، یا یک توصیفگر "HOST:PORT". مثلا:
(gdb) remote /dev/ttyb را هدف قرار دهید
از طریق خط سریال با سرور ارتباط برقرار می کند /dev/ttyb، و:
(gdb) target remote the-target:2345
از طریق یک اتصال TCP به پورت 2345 در میزبان «هدف»، جایی که قبلاً
شروع شده gdbserver با همان شماره پورت توجه داشته باشید که برای اتصالات TCP باید
شروع gdbserver قبل از استفاده از دستور "target remote"، در غیر این صورت ممکن است یک را دریافت کنید
خطایی شبیه به "اتصال رد شد".
gdbserver همچنین می تواند چندین inferior را به طور همزمان اشکال زدایی کند، که در راهنمای GDB در گره توضیح داده شده است
"Inferiors and Programs" -- دستور پوسته "info -f gdb -n "Inferiors and Programs"". که در
در چنین مواردی از نوع فرمان GDB "extended-remote" استفاده کنید:
(gdb) target extended-remote the-target:2345
La gdbserver انتخاب -- چند ممکن است در چنین مواردی استفاده شود یا نباشد.
OPTIONS
سه حالت مختلف برای فراخوانی وجود دارد gdbserver:
اشکال زدایی یک برنامه خاص که با نام برنامه آن مشخص شده است:
gdbserver [ ...]
La COMM پارامتر نحوه ارتباط سرور با GDB را مشخص می کند. آن است
نام دستگاه (برای استفاده از خط سریال)، شماره پورت TCP (":1234")، یا "-" یا "stdio"
برای استفاده از stdin/stdout از "gdbserver". نام برنامه ای را برای دیباگ مشخص کنید پرسه زدن.
هر آرگومان باقیمانده کلمه به کلمه به برنامه منتقل می شود. زمانی که برنامه
خارج می شود، GDB اتصال را می بندد و "gdbserver" خارج می شود.
اشکال زدایی یک برنامه خاص با مشخص کردن شناسه فرآیند یک برنامه در حال اجرا:
gdbserver --پیوست
La COMM پارامتر همانطور که در بالا توضیح داده شد است. شناسه فرآیند یک برنامه در حال اجرا را ارائه دهید
in pid; GDB هر کار دیگری را انجام خواهد داد. مانند حالت قبلی، زمانی که فرآیند
pid خارج می شود، GDB اتصال را می بندد و "gdbserver" خارج می شود.
حالت چند فرآیندی -- اشکال زدایی بیش از یک برنامه/فرآیند:
gdbserver --multi
در این حالت، GDB می تواند دستور دهد gdbserver کدام دستور (ها) اجرا شود. بر خلاف 2 تای دیگه
در حالتهای مختلف، GDB اتصال را هنگامی که فرآیندی که اشکال زدایی میشود خارج میشود، نمیبندد، بنابراین شما
می تواند چندین فرآیند را در یک جلسه اشکال زدایی کند.
در هر یک از حالت ها می توانید این گزینه ها را مشخص کنید:
--کمک
لیست همه گزینه ها، با توضیحات مختصر.
- نسخه
این گزینه باعث می شود gdbserver برای چاپ شماره نسخه آن و خروج.
-- ضمیمه کردن
gdbserver به یک برنامه در حال اجرا متصل می شود. نحو عبارت است از:
target> gdbserver --attach
pid شناسه فرآیند یک فرآیند در حال اجرا است. لزومی به اشاره نیست
gdbserver در یک باینری برای فرآیند در حال اجرا.
-- چند
برای راه اندازی "gdbserver" بدون ارائه دستور اولیه برای اجرا یا پردازش شناسه
ضمیمه کنید، از این گزینه خط فرمان استفاده کنید. سپس می توانید با استفاده از "target" متصل شوید
Extended-Remote" و برنامه ای را که می خواهید اشکال زدایی کنید شروع کنید. نحو این است:
target> gdbserver --multi
- رفع اشکال
به "gdbserver" دستور دهید تا اطلاعات وضعیت اضافی را در مورد فرآیند اشکال زدایی نمایش دهد.
این گزینه برای توسعه "gdbserver" و برای گزارش اشکال در نظر گرفته شده است
توسعه دهندگان
---اشکال زدایی از راه دور
به "gdbserver" دستور دهید تا خروجی اشکال زدایی پروتکل راه دور را نمایش دهد. این گزینه در نظر گرفته شده است
برای توسعه "gdbserver" و برای گزارش اشکال به توسعه دهندگان.
--debug-format=option1[،گزینه 2،...]
به "gdbserver" دستور دهید اطلاعات اضافی را در هر خط خروجی اشکال زدایی قرار دهد.
-- لفاف
برای راهاندازی برنامههای اشکالزدایی، یک پوشش مشخص کنید. گزینه باید دنبال شود
نام wrapper، سپس هر آرگومان خط فرمان برای ارسال به wrapper، سپس
"--" نشان دهنده پایان آرگومان های wrapper است.
--یک بار
به طور پیش فرض، gdbserver پورت TCP شنود را باز نگه می دارد، به طوری که اضافی
اتصالات امکان پذیر است. با این حال، اگر "gdbserver" را با --یک بار گزینه،
پس از اتصال به، برای هر گونه تلاش برای اتصال بیشتر گوش نمی دهد
اولین جلسه GDB
از gdbserver به صورت آنلاین با استفاده از خدمات onworks.net استفاده کنید