این دستور vgdb است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
vgdb - واسطه بین Valgrind و GDB یا یک پوسته
خلاصه
vgdb [گزینه های]
شرح
vgdb ("Valgrind to GDB") به عنوان یک واسطه بین Valgrind و GDB یا یک پوسته استفاده می شود.
دو حالت استفاده دارد:
1. به عنوان یک ابزار مستقل، از خط فرمان پوسته برای ارسال دستورات مانیتور استفاده می شود
به فرآیندی که تحت Valgrind اجرا می شود. برای این استفاده، گزینه(های) vgdb باید باشد
به دنبال آن دستور مانیتور ارسال می شود. برای ارسال بیش از یک دستور، آنها را جدا کنید
با -c گزینه.
2. در ترکیب با GDB "target remote |" دستور، به عنوان برنامه رله استفاده می شود
بین GDB و gdbserver Valgrind. برای این استفاده، فقط گزینه(های) را می توان داد،
اما هیچ دستوری نمی تواند داده شود.
OPTIONS
--pid=
PID فرآیندی که vgdb باید به آن متصل شود را مشخص می کند. این گزینه مفید است
در صورتی که بتوان به بیش از یک سرور gdbserver Valgrind متصل شد. اگر -پید استدلال است
داده نشده است و چندین فرآیند Valgrind gdbserver در حال اجرا هستند، vgdb گزارش خواهد کرد
لیستی از این فرآیندها و سپس خروج.
--vgdb-پیشوند
اگر میخواهید پیشوند پیشفرض را تغییر دهید، باید به Valgrind و vgdb داده شود
FIFOها (لولههای نامگذاری شده) که برای ارتباط بین Valgrind gdbserver و
vgdb.
--انتظار=
به vgdb دستور می دهد تا سرورهای gdbserver Valgrind موجود را برای تعداد مشخص شده جستجو کند
ثانیه این امر باعث می شود تا قبل از شروع Valgrind یک فرآیند vgdb را شروع کنید
gdbserver که قصد دارید vgdb با آن ارتباط برقرار کنید. این گزینه زمانی مفید است که
به همراه a استفاده می شود --vgdb-پیشوند که منحصر به فرآیندی است که شما می خواهید
صبر کن همچنین اگر از --صبر کن آرگومان در دستور GDB "target remote"، شما
باید فاصله دور GDB را روی مقداری بزرگتر از مقدار آرگومان --wait تنظیم کنید. دیدن
انتخاب --max-invoke-ms (فقط در زیر) برای مثالی از تنظیم مقدار remotetimeout.
--max-invoke-ms=
تعداد میلی ثانیه هایی را نشان می دهد که پس از آن vgdb فراخوانی را مجبور می کند
gdbserver تعبیه شده در Valgrind. مقدار پیش فرض 100 میلی ثانیه است. مقدار 0
فراخوانی اجباری را غیرفعال می کند. فراخوانی اجباری زمانی استفاده می شود که vgdb به a متصل است
Valgrind gdbserver، و فرآیند Valgrind تمام رشته های آن در یک سیستم مسدود شده است.
زنگ زدن.
اگر مقدار بزرگی را مشخص کنید، ممکن است لازم باشد مقدار "Remotetimeout" GDB را افزایش دهید
از مقدار پیش فرض آن 2 ثانیه است. باید اطمینان حاصل کنید که تایم اوت (در ثانیه)
بزرگتر از --max-invoke-ms ارزش. به عنوان مثال، برای --max-invoke-ms=5000از
دستور GDB زیر مناسب است:
(gdb) remotetimeout 6 را تنظیم کنید
--cmd-time-out=
به یک vgdb مستقل دستور می دهد اگر gdbserver Valgrind که به آن متصل است خارج شود
دستوری را در تعداد مشخص شده ثانیه پردازش نکنید. مقدار پیش فرض به است
هرگز تایم اوت
--پورت=
به vgdb دستور می دهد تا از tcp/ip و گوش دادن به GDB در پورت شماره شماره مشخص شده استفاده کند.
برای استفاده از یک لوله برای ارتباط با GDB. استفاده از tcp/ip به شما امکان می دهد GDB را روی یکی اجرا کنید
کامپیوتر و اشکال زدایی یک فرآیند Valgrind که روی کامپیوتر هدف دیگری اجرا می شود. مثال:
# در رایانه هدف، برنامه خود را با استفاده از valgrind شروع کنید
valgrind --vgdb-error=0 prog
# و سپس در یک پوسته دیگر، اجرا کنید:
vgdb --port=1234
در رایانه ای که میزبان GDB است، این دستور را اجرا کنید:
gdb prog
(gdb) target remote targetip:1234
که در آن targetip آدرس IP یا نام میزبان رایانه مورد نظر است.
-c
برای دادن بیش از یک دستور به یک vgdb مستقل، دستورات را با یک گزینه جدا کنید
-c. مثال:
vgdb v.set log_output -c leak_check any
-l
به یک vgdb مستقل دستور می دهد تا لیستی از فرآیندهای gdbserver Valgrind را گزارش کند
در حال اجرا و سپس خروج
-D
به یک vgdb مستقل دستور می دهد تا وضعیت حافظه مشترک استفاده شده توسط آن را نشان دهد
Valgrind gdbserver. vgdb پس از نشان دادن Gdbserver به اشتراک گذاشته شده Valgrind خارج می شود
وضعیت حافظه
-d
به vgdb دستور می دهد تا خروجی اشکال زدایی تولید کند. چندتایی بده -d ارگ برای افزایش
پرحرفی هنگام دادن -d به یک رله vgdb، بهتر است خطای استاندارد را تغییر دهید
(stderr) از vgdb به یک فایل برای جلوگیری از تعامل بین خروجی اشکال زدایی GDB و vgdb.
با استفاده از خدمات onworks.net از vgdb به صورت آنلاین استفاده کنید