কিউটি স্রষ্টাকে ব্যবহার করে রুট অনুমতি নিয়ে উবুন্টুতে কিউটি অ্যাপ্লিকেশন ডিবাগ করুন


10

মূল অ্যাপিলিজেসগুলি ব্যবহার করে আমার অ্যাপ্লিকেশনটি চালানো সম্ভব sudo:

sudo ./MyApp

আমার কিউটি অ্যাপ্লিকেশনটি কিউটিক্রিটার ব্যবহার করে রুট প্রিভিলিজেস ব্যবহার করে ডিবাগ করা সম্ভব? আমি কীভাবে এটি উবুন্টু সিস্টেমে করতে পারি?

উত্তর:


14
  1. যাও Tools-> Options-> Environment
  2. ইন ট্যাবGeneral অধীনে **System** Groupএকটা হল Terminalঅপশন
  3. ডিফল্ট মান সেট করা আছে /usr/bin/xterm -e। এটি দিয়ে /usr/bin/xterm -e sudoবা প্রতিস্থাপন করুন /usr/bin/gnome-terminal -x sudo
  4. প্রেস Applyএবং OK বাটন
  5. মোড নির্বাচকের অধীনে ক্লিক করুন Projects, Runবিকল্প নির্বাচন করুন । Runগ্রুপ বাক্সের অধীনে নির্বাচন করুন Run in Terminal

মনে রাখবেন: sudoঅপশন অবশ্যই থাকতে হবে

/etc/sudoersব্যবহার করে সম্পাদনা করুনsudo visudo

পরের বার আপনি যখন প্রোগ্রামটি চালাবেন এটি নতুন xtermবা gnome-terminal সুপার ব্যবহারকারী অনুমতি সহ ডাকা হবে এবং রুট পাসওয়ার্ডের জন্য জিজ্ঞাসা করবে ।


2
এই অধিকার সমাধান
সত্যজিৎ

2
আমাদের / ইত্যাদি / সূডারে কী যুক্ত করা উচিত?
নেকটিবি

4
আমার জন্য কাজ করে না, sudo পাসওয়ার্ড প্রবেশের পরে অ্যাপ্লিকেশন আউটপুট রিপোর্ট করে "ডিবাগিং শেষ হয়েছে", ব্রেকাপটগুলির কোনওটিই সত্যিই

রেকর্ডের জন্য, "মোড সিলেক্টর" হ'ল বাম প্যানেলটি একেবারে শীর্ষে ওয়েলকাম সহ
এরিক

1

আমি কিউটি ক্রিয়েটারকে মূল হিসাবে শুরু করে এটি সমাধান করেছি।

sudo /usr/bin/qtcreator

আমি যখন কম্পাইল এবং ডিবাগ করব তখন এটি অ্যাপ্লিকেশনটির মূল অনুমতি পাবে। এখন রুট সুবিধার সাথে আমার অ্যাপ্লিকেশনটি ডিবাগ করা সম্ভব।


3
এটি একটি খুব খুব বোকা জিনিস। আমি আপত্তিকর হওয়ার চেষ্টা করছি না বোকা এই অর্থে যে এটি করা কোনও স্মার্ট জিনিস নয়। এবং আমি নিশ্চিত যে বেশিরভাগ লোক এটি কখনও করবে না
ইহরব


1
উইন্ডোজ ব্যবহারকারী হতে হবে না। সবকিছুকে মূল হিসাবে চালাবেন না।
শাহবাজ

1
এটা করবেন না! এটি এই অবস্থার অধীনে আপনার উত্স ফাইলগুলির মালিকানা এবং আপনার .pro.user এবং অন্যান্য Qt তৈরির কনফিগারেশন ফাইলগুলির মালিকানা পরিবর্তন করতে পারে। আপনি যখন নিয়মিত ব্যবহারকারীরূপে চলতে ফিরে যান, আপনি ত্রুটিগুলিতে চলে যাবেন এবং সবকিছু পুনরুদ্ধার করার জন্য কিছু হুপ দিয়ে যেতে হবে। আমি এই কঠিন উপায়ে শিখেছি ...
বুভিন জে

1

মূল হিসাবে চালানো একটি ভয়ঙ্কর ধারণা। পরিবর্তে, উত্সটি ব্যবহার করুন এবং এইভাবে জিডিবি চালু করতে Qtcreator sudo ব্যবহার করুন। আপনি কিউটিক্রিটর চালু করার আগে একটি টিটিআই ও অথ সুডোর কাছ থেকে Qtcreator চালানোর প্রয়োজন হয় বা পাসওয়ার্ডহীন সুডোর জন্য আপনার ব্যবহারকারীকে কনফিগার করেন (প্রস্তাবিত নয়)। আমি পরে আরও একটি সম্পূর্ণ সমাধান কোড করব।

QT- এর পূর্বের জ্ঞান ছাড়াই আমাকে 1-2 ঘন্টা কোড / ডিবাগে নিয়ে গেছে। সংকলনটি সম্পূর্ণ হওয়ার অপেক্ষায় বেশিরভাগ সময় ব্যয় হয়েছিল

https://gist.github.com/ppetraki/a0080da047047ea184c6

--- qtcreator-3.0.1.orig/src/plugins/debugger/gdb/gdbprocess.cpp +++ qtcreator-3.0.1/src/plugins/debugger/gdb/gdbprocess.cpp @@ -59,7 +59,11 @@ QByteArray GdbProcess::readAllStandardEr

void GdbProcess::start(const QString &cmd, const QStringList &args) { - m_gdbProc.setCommand(cmd, Utils::QtcProcess::joinArgs(args)); + QStringList sudoArgs; + sudoArgs << cmd << args; + QString sudoCmd = QString::fromUtf8("/usr/bin/sudo"); + + m_gdbProc.setCommand(sudoCmd, Utils::QtcProcess::joinArgs(sudoArgs)); m_gdbProc.start(); }


1

আমি জিডিবি সার্ভার (রুট হিসাবে) দিয়ে একটি টার্মিনাল থেকে প্রোগ্রামটি চালিত করব এবং তারপরে কিউটিক্রিয়েটর থেকে জিডিবি দিয়ে সার্ভারে সংযুক্ত করব। আপনি এই জাতীয় কিছু দিয়ে জিডিবার্সার শুরু করবেন:

$ sudo gdbserver host:2345 ./MyApp

এখানে, আপনি 2345 পোর্ট সহ সার্ভারটি হোস্ট করছেন your আপনার অ্যাপ্লিকেশনটি সত্যিই ইউআইডি 0 দিয়ে চলছে কিনা তাও আপনি পরীক্ষা করতে পারেন।

$ sudo ps -u

এখন, কিউটি ক্রিয়েটারে, ডিবাগ -> ডিবাগিং শুরু করুন -> চলমান ডিবাগ সার্ভারে সংযুক্ত করুন। ফর্মটি পূরণ করুন ... সর্বাধিক গুরুত্বপূর্ণ হ'ল বন্দর এবং সার্ভারের ঠিকানা। আমি 127.0.0.1 এবং 2345 পছন্দ করেছি You আপনি প্রোগ্রামের শুরুতে বিরতিতে প্রধানত বিরতি নির্বাচন করতে পারেন। আপনি সংযোগ না করা পর্যন্ত GDB সার্ভার প্রোগ্রাম শুরু করে না।


0

নিম্নলিখিত ক্রিয়াগুলি কিউটি সমর্থন ফোরামে প্রস্তাবিত হয়েছিল:

কিউটি ক্রিয়েটারে, বিকল্পগুলি -> ডিভাইসগুলিতে দূরবর্তী লিনাক্স ডিভাইস যুক্ত করুন। লোকালহোস্ট হিসাবে এর ঠিকানা এবং ব্যবহারকারী হিসাবে রুট হিসাবে সেট করুন। প্রমাণীকরণ কীগুলির একটি জুড়ি তৈরি করুন এবং এতে সর্বজনীন কী পেস্ট করুন /root/.ssh/authorized_keys। তারপরে বিকল্পগুলিতে ডেস্কটপ কিটটি ক্লোন করুন -> কিটস এবং আপনার আগের পদক্ষেপে তৈরি করা ডিভাইসে নতুন কিটের জন্য ডিভাইসটি সেট করুন।

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

এটি খুব ডিবাগিং ছাড়াই চলমান কাজ করে।

আপনার নিজের প্রোগ্রামটি রিমোট হোস্টে স্থাপন করা উচিত, তবে এটি একটি আলাদা গল্প এবং এটি Qmake এবং QBS এর জন্য আলাদাভাবে সম্পন্ন হয়েছে।

https://forum.qt.io/post/185983

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