Đây là lệnh gdbserver có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
gdbserver - Máy chủ Từ xa cho Trình gỡ lỗi GNU
SYNOPSIS
máy chủ gdb thông tin ăn xin [args....]
máy chủ gdb --đính kèm thông tin pid
gdbserver --multi thông tin
MÔ TẢ
máy chủ gdb là một chương trình cho phép bạn chạy GDB trên một máy khác với máy
đang chạy chương trình được gỡ lỗi.
Cách sử dụng (phía máy chủ (đích)):
Đầu tiên, bạn cần có một bản sao của chương trình bạn muốn gỡ lỗi được đưa vào mục tiêu
hệ thống. Chương trình có thể được loại bỏ để tiết kiệm dung lượng nếu cần, như máy chủ gdb không quan tâm
về các ký hiệu. Tất cả việc xử lý ký hiệu do GDB chạy trên máy chủ đảm nhận
hệ thống.
Để sử dụng máy chủ, bạn đăng nhập vào hệ thống đích và chạy máy chủ gdb chương trình. Bạn
phải cho nó biết (a) cách giao tiếp với GDB, (b) tên chương trình của bạn và (c)
tranh luận. Cú pháp chung là:
target> gdbserver [ ...]
Ví dụ: sử dụng cổng nối tiếp, bạn có thể nói:
target> gdbserver / dev / com1 emacs foo.txt
Điều này nói với máy chủ gdb để gỡ lỗi emac với một đối số của foo.txt và giao tiếp với
GDB qua / dev / com1. máy chủ gdb bây giờ kiên nhẫn chờ đợi GDB máy chủ liên lạc với nó.
Để sử dụng kết nối TCP, bạn có thể nói:
target> máy chủ gdbserver: 2345 emacs foo.txt
Điều này nói khá giống với ví dụ cuối cùng, ngoại trừ việc chúng ta sẽ
giao tiếp với "máy chủ" GDB thông qua TCP. Đối số "máy chủ: 2345" có nghĩa là chúng tôi
mong đợi thấy kết nối TCP từ "máy chủ" tới cổng TCP cục bộ 2345. (Hiện tại,
phần "máy chủ" bị bỏ qua.) Bạn có thể chọn bất kỳ số nào bạn muốn cho số cổng miễn là
vì nó không xung đột với bất kỳ cổng TCP hiện có nào trên hệ thống đích. Cùng một cổng này
số phải được sử dụng trong lệnh "đích từ xa" của GDB máy chủ, lệnh này sẽ được mô tả
trong thời gian ngắn. Lưu ý rằng nếu bạn chọn số cổng xung đột với dịch vụ khác,
máy chủ gdb sẽ in thông báo lỗi và thoát.
máy chủ gdb cũng có thể gắn vào các chương trình đang chạy. Điều này được thực hiện thông qua --gắn
tranh luận. Cú pháp là:
target> gdbserver --attach
pid là ID tiến trình của một tiến trình hiện đang chạy. Nó không cần thiết phải chỉ
máy chủ gdb tại một tệp nhị phân cho quá trình đang chạy.
Để khởi động "gdbserver" mà không cần cung cấp lệnh ban đầu để chạy hoặc xử lý ID để đính kèm,
sử dụng --đa tùy chọn dòng lệnh. Trong trường hợp này, bạn nên kết nối bằng cách sử dụng "target
Extended-remote "để khởi động chương trình bạn muốn gỡ lỗi.
target> gdbserver --multi
Cách sử dụng (phía máy chủ):
Bạn cần một bản sao chưa được đánh dấu của chương trình mục tiêu trên hệ thống máy chủ của mình, vì GDB cần
kiểm tra các bảng biểu tượng của nó và như vậy. Khởi động GDB như bình thường, với mục tiêu
chương trình như là đối số đầu tiên. (Bạn có thể cần sử dụng --baud tùy chọn nếu dòng nối tiếp
đang chạy ở bất kỳ thứ gì ngoại trừ 9600 baud.) Đó là "gdb TARGET-PROG" hoặc "gdb --baud BAUD
TARGET-PROG ". Sau đó, lệnh mới duy nhất bạn cần biết là" target remote "
(hoặc "mục tiêu mở rộng-điều khiển từ xa"). Đối số của nó là một tên thiết bị (thường là một chuỗi
thiết bị, như / dev / ttyb) hoặc bộ mô tả "HOST: PORT". Ví dụ:
(gdb) target remote / dev / ttyb
giao tiếp với máy chủ qua đường nối tiếp / dev / ttybvà:
(gdb) nhắm mục tiêu từ xa mục tiêu: 2345
giao tiếp qua kết nối TCP tới cổng 2345 trên máy chủ `` the-target '', nơi trước đây bạn
bắt đầu máy chủ gdb với cùng một số cổng. Lưu ý rằng đối với các kết nối TCP, bạn phải
khởi động máy chủ gdb trước khi sử dụng lệnh `` target remote '', nếu không, bạn có thể nhận được
lỗi trông giống như `` Kết nối bị từ chối ''.
máy chủ gdb cũng có thể gỡ lỗi nhiều đầu vào cùng một lúc, được mô tả trong hướng dẫn sử dụng GDB trong nút
"Inferiors and Programs" - lệnh shell "info -f gdb -n 'Inferiors and Programs'". Trong
trường hợp đó, hãy sử dụng biến thể lệnh GDB "điều khiển từ xa":
(gdb) nhắm mục tiêu mở rộng-từ xa mục tiêu: 2345
Sản phẩm máy chủ gdb tùy chọn --đa có thể có hoặc không được sử dụng trong trường hợp đó.
LỰA CHỌN
Có ba chế độ khác nhau để gọi máy chủ gdb:
· Gỡ lỗi một chương trình cụ thể được chỉ định bởi tên chương trình của nó:
gdbserver [ ...]
Sản phẩm thông tin tham số chỉ định cách máy chủ giao tiếp với GDB; nó cũng thế
tên thiết bị (để sử dụng một dòng nối tiếp), số cổng TCP (": 1234") hoặc "-" hoặc "stdio"
để sử dụng stdin / stdout của "gdbserver". Chỉ định tên của chương trình để gỡ lỗi ăn xin.
Mọi đối số còn lại sẽ được chuyển đến chương trình nguyên văn. Khi chương trình
thoát, GDB sẽ đóng kết nối và "gdbserver" sẽ thoát.
· Gỡ lỗi một chương trình cụ thể bằng cách chỉ định ID tiến trình của một chương trình đang chạy:
gdbserver --attach
Sản phẩm thông tin tham số như mô tả ở trên. Cung cấp ID quy trình của một chương trình đang chạy
in pid; GDB sẽ làm mọi thứ khác. Giống như với chế độ trước, khi quy trình
pid thoát, GDB sẽ đóng kết nối và "gdbserver" sẽ thoát.
· Chế độ đa quy trình - gỡ lỗi nhiều hơn một chương trình / quy trình:
gdbserver --multi
Trong chế độ này, GDB có thể hướng dẫn máy chủ gdb (các) lệnh nào để chạy. Không giống như 2 cái còn lại
, GDB sẽ không đóng kết nối khi một quy trình đang được gỡ lỗi thoát ra, vì vậy bạn
có thể gỡ lỗi một số quy trình trong cùng một phiên.
Trong mỗi chế độ, bạn có thể chỉ định các tùy chọn sau:
--Cứu giúp
Liệt kê tất cả các tùy chọn, kèm theo lời giải thích ngắn gọn.
--phiên bản
Tùy chọn này gây ra máy chủ gdb để in số phiên bản của nó và thoát.
--gắn
máy chủ gdb sẽ đính kèm vào một chương trình đang chạy. Cú pháp là:
target> gdbserver --attach
pid là ID tiến trình của một tiến trình hiện đang chạy. Nó không cần thiết phải chỉ
máy chủ gdb tại một tệp nhị phân cho quá trình đang chạy.
--đa
Để khởi động "gdbserver" mà không cần cung cấp lệnh ban đầu để chạy hoặc xử lý ID để
đính kèm, sử dụng tùy chọn dòng lệnh này. Sau đó, bạn có thể kết nối bằng cách sử dụng "target
Extended-remote "và khởi động chương trình bạn muốn gỡ lỗi. Cú pháp là:
target> gdbserver --multi
--gỡ lỗi
Hướng dẫn "gdbserver" hiển thị thông tin trạng thái bổ sung về quá trình gỡ lỗi.
Tùy chọn này dành cho phát triển "gdbserver" và báo cáo lỗi cho
nhà phát triển.
--gỡ lỗi từ xa
Hướng dẫn "gdbserver" hiển thị đầu ra gỡ lỗi giao thức từ xa. Tùy chọn này là nhằm mục đích
để phát triển "gdbserver" và báo cáo lỗi cho nhà phát triển.
--debug-format = option1[,Lựa chọn 2,...]
Hướng dẫn "gdbserver" bao gồm thông tin bổ sung trong mỗi dòng đầu ra gỡ lỗi.
--vỏ bánh
Chỉ định một trình bao bọc để khởi chạy các chương trình để gỡ lỗi. Tùy chọn phải được theo sau bởi
tên của trình bao bọc, sau đó là bất kỳ đối số dòng lệnh nào để chuyển đến trình bao bọc, sau đó
"-" cho biết kết thúc của các đối số trình bao bọc.
--Một lần
Theo mặc định, máy chủ gdb giữ cho cổng TCP đang nghe mở, để bổ sung
kết nối có thể. Tuy nhiên, nếu bạn bắt đầu "gdbserver" với --Một lần Tùy chọn,
nó sẽ ngừng lắng nghe cho bất kỳ lần thử kết nối nào nữa sau khi kết nối với
phiên GDB đầu tiên.
Sử dụng gdbserver trực tuyến bằng các dịch vụ onworks.net