আমি কীভাবে ভিএম এর সাথে জিডিবি সংহত করতে পারি?


52

এর পরিবর্তে gdbtuiবা এর ctrl+xঅধীনে gdbস্ক্রিনের উপরে উত্স কোডটি দেখায় আমি এটি আমার ভিম সম্পাদকটিতে দেখতে চাই যা ট্যাবগুলি এবং সেই অনুসারে বাফারগুলির মধ্যে ঝাঁপ দেয়।

কিভাবে আমি এটি করতে পারব?


কেবলমাত্র রেফারেন্সের জন্যই আমি খুঁজে পেয়েছি lldb প্লাগইন @ github.com/gilligan/vim-lldb এবং স্ক্রিনশট আশাব্যঞ্জক দেখাচ্ছে।
নাম

বিটিডব্লিউ, কেউ কি উইন্ডবিজি সম্পর্কে কিছু জানেন? ভিম ইন্টিগ্রেশন একটি ভাল ধারণা হতে পারে। যদিও, আসলে আমি প্রায় কোনও সফ্টওয়্যার সম্পর্কে এটি মনে করি।
yalয়াল কার্নি

উত্তর:


33

আমি যে সমস্ত প্লাগইন চেষ্টা করেছি তার মধ্যে আমি কনকিজিডিবিকে সর্বোত্তম পন্থা বলে মনে করেছি। কনকজিডিবি ভিমের অভ্যন্তরে একটি ইন্টারেক্টিভ শেল এম্বেড করতে কনক শেল ব্যবহার করে, এটি জিডিবি ব্যবহার করে।

কনকিজডিবি সহ কর্মপ্রবাহটি জিডিবি টার্মিনালে জিডিবি কমান্ডগুলি প্রবেশ না করে, আপনি ভিএম উত্স কোডে শর্টকাট ব্যবহার করেন। তবে আপনি আরও উন্নত কমান্ডের জন্য চাইলে জিডিবি প্রম্পটটি ব্যবহার চালিয়ে যেতে পারেন বা পুরো ডিবাগ সেশনটি দেখতে স্ক্রোল করুন।

কিছু ConqueGDB ডিফল্ট ম্যাপিংস উদাহরণস্বরূপ:

  • leaderr : চালান
  • leaderc : চালিয়ে যান
  • leaders : পদক্ষেপ
  • leaderp : কার্সারের অধীনে প্রিন্ট ভেরিয়েবল

লক্ষ্য করুন যে কীভাবে ভিএম কার্সার লাইনটি একটি জিডিবি 'মুদ্রণ সারি' জারির জন্য ব্যবহৃত হয়েছে, কোডের বর্তমান সম্পাদন অন্য একটি লাইনে (14) এবং 10 লাইনে একটি ব্রেকপয়েন্ট রয়েছে।

কংগুজিডিবি সহ ভিএম im

উদাহরণস্বরূপ ভান্ডল দিয়ে ইনস্টল করতে:

Plugin 'vim-scripts/Conque-GDB'

আমি এই প্লাগইন বিকল্পগুলি ব্যবহার করি:

let g:ConqueTerm_Color = 2         " 1: strip color after 200 lines, 2: always with color
let g:ConqueTerm_CloseOnEnd = 1    " close conque when program ends running
let g:ConqueTerm_StartMessages = 0 " display warning messages if conqueTerm is configured incorrectly  

কী leaderমানে?
In78

@ In78 এর অর্থ বেশিরভাগ কম্পিউটারে <kbd> \ </kbd> কী। উদাহরণস্বরূপ <leader>rআমার কম্পিউটারগুলিতে <kbd> means </kbd> + <kbd> r </kbd> এর অর্থ। ভিম ম্যানুয়ালটির এটির জন্য একটি প্রবেশিকা রয়েছে::help leader
পারসা

না এই ConqueGDB ডিফল্ট ম্যাপিং ভুলে যেতে: <Leader>b। এটি কার্সার অবস্থানে একটি ব্রেকপয়েন্ট স্থাপন করে। তবে এটি কোনও টগল নয়, সুতরাং আপনি এটি আবার মুছে ফেলার জন্য এটি ব্যবহার করতে পারবেন না। বরং আপনাকে জিডিবি প্রম্পটে 'সাফ' লিখতে হবে।
serup

আমি এই ConqueGdb ব্যবহার করার চেষ্টা করেছি এবং এটি কাজ করার জন্য আমি প্রথমে এক্সিকিউটেবল ফাইলটি নির্দিষ্ট করেছিলাম - এবং কখনও কখনও এটি ব্রেকপয়েন্টগুলি সেট করতে ব্যর্থ হয় - আমাকে জিডিবি উইন্ডোতে ফোকাস করতে হবে এবং ব্রেকটিপয়েন্টটি উপস্থিত হওয়ার আগে আমি inোকানোর জন্য চাপতে হবে - এটি কি ConqueGdb জন্য স্বাভাবিক?
সেরাপ

11

আপনার বেশ কয়েকটি প্লাগইন রয়েছে যা জিডিবি সংহত করে।

  • আমরা পাইকেল করতামপ্রকল্পের বন্ধ করা হয়েছে সংস্করণ 2.3 পরে। সর্বশেষ প্রতিশ্রুতিটি ২০১ been সালে করা হয়েছিল। কৌতূহলীদের জন্য এখনও গিথুবে একটি আয়না রয়েছে যেখানে এর লেখক তাঁর কাজ সংরক্ষণাগারভুক্ত করেছেন। দ্রষ্টব্য: পাইকারওয়ান অন্যান্য জেভিয়ার দেগাইয়ের * জালিয়াতি প্রকল্পগুলির বিবর্তনের শেষ পর্যায়ে পদক্ষেপ হিসাবে ব্যবহৃত হত।
  • ভিএম-ডিবাগার , এটি বেশ কয়েকটি অন্যান্য ডিবাগারকে একীভূত করে
  • নোট এভিলের ভিম -ডিবাগ , যা "পাইকারওয়ানের সুবিধার স্তর হিসাবে কিছু ত্রুটিগুলি কাটিয়ে উঠতে" হিসাবে কাজ করে

এবং একটি প্লাগইন রয়েছে যা এলএলডিবি সংহত করে (এলএলভিএম প্রকল্প থেকে)

দেখে মনে হচ্ছে ব্রাম বর্তমানে (সেপ্টেম্বর 2017) নতুন :terminalবৈশিষ্ট্যের জন্য ভিএম এর মধ্যে থেকে জিডিবি সংহতকরণের জন্য কাজ করছে । এটি ব্যবহার করতে, আমাদের termdebugপ্যাকেটটি লোড করতে হবে (এর সাথে :packadd termdebug), তারপরে আমরা একটি ভিআইএম উইন্ডোতে একটি জিডিবি কনসোল শুরু করতে সক্ষম হব :TermDebug (+options)। আইএমও, আমরা এটিকে ভিমের অধীনে জিডিবি ইন্টিগ্রেশনের ভবিষ্যত হিসাবে বিবেচনা করতে পারি।


4
ভাল - আপনি কি এই প্লাগইনগুলির প্রতিটিটির একটি সংক্ষিপ্ত ধারণা দিতে পারেন?
মুরু

1
?? লিঙ্কগুলি প্লাগইনগুলির অফিশিয়াল পৃষ্ঠাগুলিতে রয়েছে। হ্যাঁ প্লাগইনগুলি অদৃশ্য হয়ে গেলে বা সে অন্য কোথাও সরানো থাকলে তারা পরিবর্তন করতে পারে। সেক্ষেত্রে আমি প্রথম বারে বার্তাটি আপডেট করব যেমনটি এসও-তে আগে হয়েছিল। এবং দ্বিতীয় ক্ষেত্রে, এর অর্থ এই যে কোনও বার্তার অংশটি যা প্লাগইন কী করবে তা বিশৃঙ্খলাবদ্ধ হয়ে যাবে details এর চেয়ে খারাপ পরিস্থিতি: প্লাগইনটি আসলে কী করে তা বিবরণ অচল হয়ে যাবে যখন তাদের নিজ নিজ লেখক তাদের উপর কাজ করবেন, বৈশিষ্ট্যগুলি যুক্ত করুন এবং এ জাতীয় কিছু। যেভাবেই হোক। আমি তাদের পরের সপ্তাহে একটি সংক্ষিপ্ত বিবরণ যুক্ত করব ...
লুক হার্মিট

2
@ লুচর্মিট পোস্টটি পর্যালোচনা সারিতে উঠে এসেছে; আমি নিজেই এই বার্তার সঠিক পাঠ্য যোগ করিনি, সিস্টেমটি আমার জন্য এটি করেছিল। যাই হোক না কেন, লিঙ্ক কেবল উত্তরগুলি এসও এর উপর "খারাপ" হিসাবে বিবেচিত হয় এবং বেশিরভাগই, এসই সাইটগুলিতে হয় না। কেবলমাত্র তারা মেয়াদোত্তীর্ণ হতে পারে তা নয়, কারণ তারা সত্যই জিনিসগুলি ব্যাখ্যা করে না ; প্রায় কোনও প্রশ্নের ডান ডকুমেন্টেশন পৃষ্ঠা (গুলি), নরকে লিঙ্ক দিয়ে "উত্তর" দেওয়া যেতে পারে, আপনি এমনকি সোর্স কোডের সাথে লিঙ্ক করতে পারেন, তবে এটি কি সত্যই কিছু ব্যাখ্যা করে? এটি কি সত্যিই দরকারী? এটি কি সত্যিই ভিম সম্পর্কে কারও বোঝার জন্য অবদান রাখে?
মার্টিন টর্নয়েজ

1
"আমি নিজে এই বার্তার সঠিক পাঠ্য যোগ করিনি, সিস্টেমটি আমার জন্য এটি করেছিল" । ঠিক আছে. এটি বার্তাটি ব্যাখ্যা করে, যা আমি বেশ অদ্ভুত বলে মনে করি। লিঙ্ক সম্পর্কিত। আমি আরটিএফএম / এসএফটিডব্লিউ সম্পর্কে এসও / এসই নীতি বুঝতে পারি। অন্যান্য ফোরামগুলির থেকে পৃথক, পুনরাবৃত্তি / সদৃশ প্রশ্নগুলি সনাক্ত করার পরে বন্ধ করা হয় এবং এসও / এসই আরও উইকি পদ্ধতির দিকে ঝুঁকছে।
লুক হার্মিট

3
প্লাগইনগুলি কোথায় পাবেন সে সম্পর্কে। আমি তাদের ডকুমেন্টেশন নকল করতে পারে। তবে এটি খুব বেশি কাজে দেবে না। তদুপরি, প্লাগিনগুলি বিকশিত হওয়ায় উত্তরটি আপ টু ডেট রাখা প্রায় অসম্ভব। বৈশিষ্ট্যগুলির একটি আপ-টু-ডেট সংক্ষিপ্ত সংক্ষিপ্তসার যুক্ত করা সম্ভব এবং আমি এটি দেখতে পাব। যাই হোক না কেন, তাদের অফিসিয়াল পৃষ্ঠাটি এন্ট্রি পয়েন্ট। প্লাগইন সম্পর্কিত, এটি প্রথম গুরুত্বপূর্ণ তথ্য। প্রকৃতপক্ষে, একটি দুর্দান্ত উপস্থাপনা আমাদের কাছে আবেদন করতে পারে ... যতক্ষণ না আমরা প্লাগইনটি আবিষ্কার করি আমাদের নির্দিষ্ট ক্ষেত্রে কাজ করতে পারে না - যা প্রায়শই FSOSS এর সাথে ঘটে। এটি যেখানে উপলব্ধ সমাধানগুলির একটি তালিকা আকর্ষণীয়।
লুক হার্মিটে

7

জিডিবি editকমান্ড

কমান্ডটি ব্যবহার করে বর্তমান লাইনে একটি সম্পাদক খোলে:

$EDITOR +<current-line> <current-file>

ডিফল্টটি editorহ'ল ex, তবে vimএটি +<current-line>ফর্ম্যাটটিও বোঝে ।

আপনি সম্পাদকটি ছেড়ে দিলে আপনি আবার প্রবেশ করতে পারেন gdb

এটি আপনাকে উত্স অবাধে ব্রাউজ করতে দেয় এবং আপনার ctagsএকীকরণ থাকলে বিশেষত পাওয়ারফুল ।

এটি একটি গরীব লোকের অন্তর্নির্মিত এক উপায় জিডিবি যা ভিএম সংহতকরণের জন্য: মূল অনুপস্থিত জিনিসটি ভিম থেকে ব্রেকপয়েন্ট নির্ধারণ করছে।

edit এবং কেন্দ্র

editউত্সটির চারপাশে ডিফল্টভাবে ভিমকে কেন্দ্র করে না, তাই আমি পাইথন স্ক্রিপ্ট তৈরি করেছি যা এটি করে: https://stackoverflow.com বর্তমান লাইন-ইন-এ-টেক্সট সম্পাদক-থেকে-gdb এর / 43557406 # 43557406

ক্লিপবোর্ড সহায়ককে ব্রেকপয়েন্ট কমান্ড

এই ভিএম কমান্ড টাইপের একটি ব্রেকপয়েন্ট স্পেসিফায়ার অনুলিপি করে:

b <file-path>:<line-number>

ক্লিপবোর্ডে:

command! Xg :let @+ = 'b ' . expand('%:p') . ':' . line('.')

তারপরে আপনি কেবল এটিতে পেস্ট করতে পারেন gdb

ব্রেকপয়েন্টগুলি নির্ধারণ করতে স্বাচ্ছন্দ্যে gdb ইন্টিগ্রেশনটি এটি একজন দরিদ্র ব্যক্তির ভিম।

আরও দেখুন: https://stackoverflow.com/questions/3536600/do-you-debug-c-code-in-vim-how


3

যদিও প্রযুক্তিগতভাবে ভিম নয়। সিজিডিবি হ'ল জিএমডিবি-র একটি অভিশাপ সংস্করণ, যা ভিম-মতো কী-বাইন্ডিং সহ। এটি বছরের পর বছর ধরে আমার গোপন ডিবাগার:

https://cgdb.github.io/

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.