ভিজ্যুয়াল স্টুডিও কোড কনফিগার করা হচ্ছে

ভিজ্যুয়াল স্টুডিও কোড (VSCode) হল একটি ফ্রি কোড এডিটর, যা macOS, Linux এবং Windows অপারেটিং সিস্টেমে চলে। এটিতে মার্জিত টুলিং সমর্থন রয়েছে যা পাইথন এবং সি++ বিকাশ, ভিজ্যুয়াল ডিবাগিং, গিটের সাথে একীকরণ এবং আরও অনেক আকর্ষণীয় বৈশিষ্ট্য সমর্থন করে। ব্যবহারের সহজতা এবং এক্সটেনশন পরিচালনার কারণে, এটি TensorFlow IO বিকাশের জন্য একটি দুর্দান্ত সম্পাদক। যাইহোক, এটি সঠিকভাবে কনফিগার করার জন্য কিছু প্রচেষ্টা প্রয়োজন। যেহেতু VSCode কনফিগারেশন খুবই নমনীয়, এটি ডেভেলপারদের বেজেল ব্যবহার করে প্রজেক্ট কম্পাইল করতে এবং পাইথন এবং C++ ডিবাগারের অধীনে কোড চালাতে দেয়। অপারেশন সিস্টেমের উপর ভিত্তি করে বেস টুল সেটআপ ভিন্ন হতে পারে, কিন্তু কনফিগারেশন পদ্ধতি একই রকম হওয়া উচিত।

এক্সটেনশন

একটি এক্সটেনশন ইনস্টল করতে সাইডবারে এক্সটেনশন ভিউ আইকনে (এক্সটেনশন) ক্লিক করুন বা শর্টকাট Ctrl+Shift+X ব্যবহার করুন। তারপর নিচের কীওয়ার্ড সার্চ করুন।

  • C/C++ - মাইক্রোসফট থেকে অফিসিয়াল C++ এক্সটেনশন
  • পাইথন - মাইক্রোসফ্ট থেকে অফিসিয়াল পাইথন এক্সটেনশন
  • পাইথন এক্সটেনশন প্যাক - পাইথন বিকাশের জন্য আরেকটি দরকারী এক্সটেনশন

প্রকল্প সংকলন

টেনসরফ্লো আইও বেজেল বিল্ড কমান্ড ব্যবহার করে কম্পাইল করা হয়েছে:

bazel build -s --verbose_failures --compilation_mode dbg //tensorflow_io/...

উবুন্টুতে কিভাবে ডেভেলপমেন্ট এনভায়রনমেন্ট সেটআপ করতে হয় তার বিস্তারিত জানার জন্য প্রজেক্ট README ফাইলটি দেখুন। --compilation_mode dbg পতাকা এখানে নির্দেশ করে যে উত্পাদিত বাইনারিতে ডিবাগ চিহ্ন থাকা উচিত। একবার আপনি কমান্ড লাইন থেকে প্রকল্প কম্পাইল করতে পারেন, আপনি একই কমান্ড আহ্বান করতে সক্ষম হতে VSCode কনফিগার করতে পারেন।

ভিউ->কমান্ড প্যালেট ( Ctrl+Shift+P ) খুলুন এবং টাইপ করা শুরু করুন: "টাস্ক: বিল্ড টাস্ক কনফিগার করুন"। আপনি যদি প্রথমবারের মতো এটি করছেন, সম্পাদক tasks.json ফাইল তৈরি করার পরামর্শ দিচ্ছেন। আপনার এটি হয়ে গেলে, নিম্নলিখিত json পেস্ট করুন:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build TF.IO (Debug)",
            "type": "shell",
            "command": "bazel build -s --verbose_failures --compilation_mode dbg //tensorflow_io/...",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": []
        }
    ]
}

এখন, আপনি Ctrl+Shift+B চাপতে পারেন এবং VSCode প্রকল্পটি তৈরি করতে উপরের কমান্ডটি ব্যবহার করতে যাচ্ছে। এটি তার নিজস্ব টার্মিনাল উইন্ডো ব্যবহার করে, যেখানে সমস্ত লিঙ্ক ক্লিকযোগ্য। সুতরাং যখন একটি সংকলন ত্রুটি ঘটে, আপনি সংশ্লিষ্ট ফাইলটি খুলুন এবং টার্মিনাল উইন্ডোতে লিঙ্কটিতে ক্লিক করে লাইনে নেভিগেট করুন।

ডিবাগিং প্রকল্প

পাইথন কোড ডিবাগ করা তুচ্ছ, এটি সক্ষম করতে VSCode কীভাবে কনফিগার করবেন তা বের করতে অফিসিয়াল ডকুমেন্টেশন অনুসরণ করুন: https://code.visualstudio.com/docs/python/debugging

যাইহোক, C++ কোড ডিবাগ করার জন্য আপনার সিস্টেমে GDB ইনস্টল করা প্রয়োজন। আপনার যদি একটি bq_sample_read.py পাইথন স্ক্রিপ্ট থাকে যা tensorflow-io লাইব্রেরি ব্যবহার করে এবং সাধারণত নিম্নলিখিত পদ্ধতিতে সম্পাদিত হয়:

python3 bq_sample_read.py --gcp_project_id=...

আপনি নিম্নলিখিত ব্যবহার করে GDB এর অধীনে এটি চালাতে পারেন:

gdb -ex r --args python3 bq_sample_read.py --gcp_project_id=...

C++ কোড পর্বে অ্যাপ্লিকেশনটি ক্র্যাশ হলে, আপনি ত্রুটির স্ট্যাকট্রেস পেতে GDB কনসোলে backtrace চালাতে পারেন।

VSCode এছাড়াও GDB ডিবাগার সমর্থন আছে। এটি ব্রেকপয়েন্ট যোগ করতে, ভেরিয়েবলের মান পর্যবেক্ষণ করতে এবং ধাপে ধাপে কোডের মাধ্যমে ধাপে ধাপে যেতে দেয়। ডিবাগ কনফিগারেশন যোগ করতে সাইডবারে ডিবাগ ভিউ আইকন (ডিবাগ) টিপুন, অথবা শর্টকাট Ctrl+Shift+D ব্যবহার করুন। এখানে, প্লে বোতামের পাশের ছোট নিচের তীরটি টিপুন এবং "কনফিগারেশন যোগ করুন..." নির্বাচন করুন। এটি এখন একটি launch.json ফাইল তৈরি করবে, যাতে, অনুগ্রহ করে নিম্নলিখিত কনফিগারেশন যোগ করুন:

{
    "name": "(gdb) Launch",
    "type": "cppdbg",
    "request": "launch",
    "program": "/usr/bin/python3",
    "args": ["bq_sample_read.py", "--gcp_project_id=..."],
    "stopAtEntry": false,
    "cwd": "${workspaceFolder}",
    "environment": [
        {
            /* path to your bazel-bin folder */
            "name": "TFIO_DATAPATH",
            "value": "/usr/local/google/home/io/bazel-bin"
        },
        {
            /* other env variables to use */
            "name": "GOOGLE_APPLICATION_CREDENTIALS",
            "value": "..."
        }
    ],
    "externalConsole": false,
    "MIMode": "gdb",
    "setupCommands": [
        {
            "description": "Enable pretty-printing for gdb",
            "text": "-enable-pretty-printing",
            "ignoreFailures": true
        }
    ]
}

সবকিছু সঠিকভাবে কনফিগার করা থাকলে, আপনি চালাতে সক্ষম হবেন -> ডিবাগিং শুরু করুন ( F5 ) বা চালান -> ডিবাগিং ছাড়াই চালান ( Ctrl + F5 )। এটি ডিবাগারের অধীনে আপনার কোড চালাবে:

VSCode ডিবাগার

ডিবাগিং অভিজ্ঞতা আরও সহজ করার জন্য, আপনি স্ট্যান্ডার্ড C++ লাইব্রেরিগুলি এড়িয়ে যেতে GDB কনফিগার করতে পারেন। এটি আপনাকে সেই কোডটিকে উপেক্ষা করতে দেয় যা আপনি গুরুত্ব দেন না৷ এটি করার জন্য, নিম্নলিখিত বিষয়বস্তু সহ একটি ~/.gdbinit ফাইল তৈরি করুন:

skip -gfi /usr/include/c++/*/*/*
skip -gfi /usr/include/c++/*/*
skip -gfi /usr/include/c++/*

ফাইল ফরম্যাটিং

আপনি সর্বদা ডান ক্লিক -> নথি বিন্যাস ( Ctrl + Shift + I ) দ্বারা C++ বা Python ফাইল পুনরায় ফর্ম্যাট করতে পারেন, কিন্তু VSCode একটি ভিন্ন শৈলী কনভেনশন ব্যবহার করে। ভাগ্যক্রমে, এটি পরিবর্তন করা সহজ।

পাইথন বিন্যাসের জন্য, https://donjayamanne.github.io/pythonVSCodeDocs/docs/formatting/ দেখুন

C++ বিন্যাসের জন্য, নিম্নলিখিতগুলি করুন:

  • পছন্দসমূহ -> সেটিংসে যান
  • "C_Cpp.clang_format_fallbackStyle" অনুসন্ধান করুন
  • নিম্নলিখিত বিষয়বস্তু যোগ করে file:setting.json ফাইলটি সরাসরি পরিবর্তন করুন
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google}"