01/10/2018, 15:55

Cách debug tool CLI?

Hi các bác,
tình hình là e đang đi thực tập và đc giao fix cái bug về CLI tool, vấn đề là e không biết debug như thế nào ạ? ví dụ như tính năng TAB autocomplete, gõ vào “li” nhấn tab thì nó sẽ ra “license” hoặc nhấn tab để gợi ý ra một số option khác như “list”, “license”, “link”,… em đã đọc qua và nghiên cứu source code thì nó dùng fprintf(stdout, …) để in ra các cái option đó, nhưng em cũng dùng fprintf để in ra chuỗi hay giá trị của biến thì lại ko đc ạ, có bác nào đã từng làm qua cho e xin ý kiến với ạ

Hung viết 17:57 ngày 01/10/2018

Search tùm lum họ đều chỉ tới trang này cả, gồm 2 phần:
https://debian-administration.org/article/316/An_introduction_to_bash_completion_part_1
https://debian-administration.org/article/317/An_introduction_to_bash_completion_part_2

Căn bản là viết script vào file “/etc/bash_completion” và sử dụng lệnh “complete”, không có ảnh hưởng source code.


Mình cũng thử các custom cli như dotnet, docker, npm, cũng không hỗ trợ bash completion.

Dương Chí Bông viết 17:59 ngày 01/10/2018

Thanks bạn, project mình làm cũng là tool run bằng CLI tự build, cũng không liên quan đến bash completion, cái TAB autocomplete đó cũng là tự viết ra, chỉ có sự dụng một vài thư viện như histedit.h trong NetBSD để xử lý phần ký tự nhập vào, mình lại là gà mờ nữa nên đang đau đầu mày mò :3

Dương Chí Bông viết 17:59 ngày 01/10/2018

thanks for support, man!!!

mình fix đc lỗi rồi, nguyên nhân chủ yếu là do mình bị ngáo,
hôm nay đục code xuống file build và makefile thì thấy đc còn 1 file main khác nữa

khi cờ đó bật lên thì nó sẽ chạy file main bên cli_vcx.c, khi đó printf hay fprintf gì cũng đc, chạy bình thường thôi

lúc đầu khi mình đóng cmt dòng fprintf bên file cli.c thì vô tình làm sao đó ngắt luôn cái session nên nó mới ko chạy, chứ ko phải do đóng cmt mà nó ko chạy nên mình cứ hiểu nhầm là main() nằm bên file đó

tất cả cũng do gà mờ với hơi ngáo thank you anyway

sẵn cám ơn luôn bạn Drgnz

Hung viết 18:06 ngày 01/10/2018

Phần này là công của bạn, không phải của mình hay @drgnz đâu.
Mà cũng chúc bạn đã fix được nhé.

Bài liên quan
0