ট্রেস অনুসন্ধান

Winscope Perfetto ট্রেসে নির্দিষ্ট অবস্থা খুঁজে পেতে SQL ব্যবহার করুন। প্রশ্নগুলি চালানোর জন্য এবং সারণীকৃত ফলাফলগুলি কল্পনা করতে Winscope UI-তে গ্লোবাল সার্চ ভিউয়ার ব্যবহার করুন:

search viewer tab

চিত্র 1. অনুসন্ধান দর্শক ট্যাব.

সার্চ ভিউয়ার আপনাকে পারফেটো ট্রেসে কাস্টম এসকিউএল কোয়েরি লিখতে এবং চালাতে দেয় এবং সাম্প্রতিক ও সংরক্ষিত প্রশ্নগুলি অ্যাক্সেস করতে দেয়। Winscope SurfaceFlinger এবং লেনদেন ট্রেস অনুসন্ধানে সহায়তা করার জন্য বিশেষ SQL ভিউ প্রদান করে।

সমস্ত দর্শনের জন্য নিম্নলিখিত নিয়মগুলি ব্যবহার করুন:

  • property এবং flat_property কলামের জন্য:

    • সম্পত্তির নামগুলি সাপের ক্ষেত্রে রয়েছে, উদাহরণস্বরূপ LayerProto থেকে visible_region
    • একটি ডট নোটেশন নেস্টেড বৈশিষ্ট্যগুলিকে উপস্থাপন করতে ব্যবহৃত হয়, উদাহরণস্বরূপ, visible_region.rect

    • property পুনরাবৃত্ত ক্ষেত্রগুলিকে বর্গাকার বন্ধনী দিয়ে আলাদা করা হয়:

      উদাহরণস্বরূপ, বারবার visible_region.rect ফিল্ডের দুটি উদাহরণের মধ্যে, top ক্ষেত্রটি visible_region.rect[0].top এবং visible_region.rect[1].top দ্বারা উপস্থাপন করা হয়।

    • flat_property পুনরাবৃত্তি করা ক্ষেত্রগুলি আলাদা করা যায় না:

      উদাহরণস্বরূপ, visible_region.rect বারবার ফিল্ডের দুটি উদাহরণের মধ্যে, top ক্ষেত্রটি উভয় ক্ষেত্রেই visible_region.rect.top দ্বারা উপস্থাপন করা হয়।

  • value এবং previous_value কলামের জন্য:

    • বুলিয়ান মান '0' ( False ) বা '1' ( True ) দ্বারা উপস্থাপিত হয়।

SurfaceFlinger SQL ভিউ

SurfaceFlinger প্রোটো ডেটা এই ফর্ম্যাটগুলি ব্যবহার করে:

  • লেয়ার ডেটা LayerProto ফরম্যাটে থাকে।

  • স্তরবিন্যাস রুট ডেটা LayersSnapshotProto বিন্যাসে আছে।

স্তর ডেটা অনুসন্ধান করতে, sf_layer_search ভিউ ব্যবহার করুন। এই দৃশ্যে এই কলামগুলি অন্তর্ভুক্ত রয়েছে:

কলাম বর্ণনা
state_id লেয়ারটি যে এন্ট্রির ইউনিক আইডি
ts লেয়ারটি যে এন্ট্রির টাইমস্ট্যাম্প
layer_id লেয়ার আইডি
parent_id পিতামাতার লেয়ার আইডি
layer_name স্তরের নাম
property পুনরাবৃত্ত ক্ষেত্রগুলির জন্য সম্পত্তির নাম অ্যাকাউন্টিং
flat_property সম্পত্তির নাম বারবার ক্ষেত্রগুলির জন্য অ্যাকাউন্টিং নয়
value স্ট্রিং বিন্যাসে সম্পত্তি মান
previous_value স্ট্রিং বিন্যাসে পূর্ববর্তী এন্ট্রি থেকে সম্পত্তির মান

অনুক্রমের রুট ডেটা অনুসন্ধান করতে, sf_hierarchy_root_search ভিউ ব্যবহার করুন। এই দৃশ্যে এই কলামগুলি অন্তর্ভুক্ত রয়েছে:

কলাম বর্ণনা
state_id এন্ট্রির অনন্য আইডি
ts প্রবেশের টাইমস্ট্যাম্প
property পুনরাবৃত্ত ক্ষেত্রগুলির জন্য সম্পত্তির নাম অ্যাকাউন্টিং
flat_property সম্পত্তির নাম বারবার ক্ষেত্রগুলির জন্য অ্যাকাউন্টিং নয়
value স্ট্রিং বিন্যাসে সম্পত্তি মান
previous_value স্ট্রিং বিন্যাসে পূর্ববর্তী এন্ট্রি থেকে সম্পত্তির মান

উদাহরণ প্রশ্ন

  • সমস্ত ফ্রেম খুঁজুন যেখানে IME স্তরের বৈধ স্ক্রীন সীমা রয়েছে:

    SELECT ts, value, previous_value FROM sf_layer_search
      WHERE layer_name like 'IME%'
      AND property='screen_bounds.bottom'
      AND value<='24000'
    
  • Taskbar স্তরের color.a পরিবর্তন করে এমন সমস্ত ফ্রেম খুঁজুন:

    SELECT ts, value, previous_value FROM sf_layer_search
      WHERE layer_name like 'Taskbar%'
      AND property='color.a'
      AND value!=previous_value
    
  • এমন সব ফ্রেম খুঁজুন যেখানে Wallpaper নিচের সীমা 2400 এর কম বা সমান:

    SELECT ts, value, previous_value FROM sf_layer_search
      WHERE layer_name LIKE 'Wallpaper%'
      AND property='bounds.bottom'
      AND cast_int!(value) <= 2400
    
  • একটি বৈধ স্তর স্ট্যাকের সাথে প্রদর্শনের জন্য সমস্ত বৈশিষ্ট্য তালিকাভুক্ত করুন:

    SELECT STATE.* FROM sf_hierarchy_root_search STATE_WITH_DISPLAY_ON
    INNER JOIN sf_hierarchy_root_search STATE
      ON STATE.state_id = STATE_WITH_DISPLAY_ON.state_id
      AND STATE_WITH_DISPLAY_ON.flat_property='displays.layer_stack'
      AND STATE_WITH_DISPLAY_ON.value!='4294967295'
      AND STATE.property LIKE CONCAT(
        SUBSTRING(
            STATE_WITH_DISPLAY_ON.property,
            0,
            instr(STATE_WITH_DISPLAY_ON.property, ']')
        ),
        '%'
      )
    

লেনদেন SQL ভিউ

লেনদেনের প্রোটো ডেটা TransactionTraceEntry ফর্ম্যাট ব্যবহার করে।

লেনদেনের ডেটা অনুসন্ধান করতে, transactions_search ভিউ ব্যবহার করুন। এই দৃশ্যে এই কলামগুলি অন্তর্ভুক্ত রয়েছে:

কলাম বর্ণনা
state_id প্রোটো সম্পত্তি যে এন্ট্রির অনন্য আইডি
ts প্রোটো সম্পত্তি যে এন্ট্রির টাইমস্ট্যাম্প
transaction_id উপলব্ধ থাকলে লেনদেন আইডি
property পুনরাবৃত্ত ক্ষেত্রগুলির জন্য সম্পত্তির নাম অ্যাকাউন্টিং
flat_property সম্পত্তির নাম বারবার ক্ষেত্রগুলির জন্য অ্যাকাউন্টিং নয়
value স্ট্রিং বিন্যাসে সম্পত্তি মান

উদাহরণ প্রশ্ন

  • লেয়ার x অবস্থানকে -54.0 এ পরিবর্তন করতে একটি লেনদেন প্রয়োগ করা হয়েছে এমন ফ্রেমটি খুঁজুন:

    SELECT ts, transaction_id, value FROM transactions_search
      WHERE flat_property='transactions.layer_changes.x'
      AND value='-54.0'
    
  • ImeContainer স্তর যোগ করা হয়েছে যেখানে ফ্রেম খুঁজুন:

    SELECT ts FROM transactions_search
      WHERE flat_property='added_layers.name'
      AND value='ImeContainer'
    

রূপান্তর SQL ভিউ

ট্রানজিশন প্রোটো ডেটা ShellTransition ফর্ম্যাট ব্যবহার করে।

ট্রানজিশন ডেটা অনুসন্ধান করতে, transitions_search ভিউ ব্যবহার করুন। এই দৃশ্যে এই কলামগুলি অন্তর্ভুক্ত রয়েছে:

কলাম বর্ণনা
ts পাঠানোর সময় - যদি পাওয়া যায় তবে পাঠানোর সময় ফিরে আসে, অন্যথায় 0
transition_id ট্রানজিশন আইডি
property পুনরাবৃত্ত ক্ষেত্রগুলির জন্য সম্পত্তির নাম অ্যাকাউন্টিং
flat_property সম্পত্তির নাম বারবার ক্ষেত্রগুলির জন্য অ্যাকাউন্টিং নয়
value স্ট্রিং বিন্যাসে সম্পত্তি মান

উদাহরণ প্রশ্ন

DefaultMixedHandler দ্বারা পরিচালিত ট্রানজিশনের বৈশিষ্ট্য খুঁজুন:

  SELECT
    PROPS.ts,
    PROPS.transition_id,
    PROPS.property,
    PROPS.value
  FROM transitions_search HANDLER_MATCH
  INNER JOIN transitions_search PROPS
    ON HANDLER_MATCH.transition_id = PROPS.transition_id
  WHERE HANDLER_MATCH.property = 'handler'
    AND HANDLER_MATCH.value LIKE "%DefaultMixedHandler"
  ORDER BY PROPS.transition_id, PROPS.property

ViewCapture SQL ভিউ

ভিউক্যাপচার প্রোটো ডেটা View ফরম্যাট ব্যবহার করে।

ViewCapture ডেটা অনুসন্ধান করতে, viewcapture_search ভিউ ব্যবহার করুন। এই দৃশ্যে এই কলামগুলি অন্তর্ভুক্ত রয়েছে:

কলাম বর্ণনা
state_id যে রাজ্যের ভিউটি সেই রাজ্যের অনন্য আইডি৷
ts রাজ্যের টাইমস্ট্যাম্প যে ভিউ এর অন্তর্গত
package_name প্যাকেজের নাম
window_name জানালার নাম
class_name ক্লাসের নাম দেখুন
property পুনরাবৃত্ত ক্ষেত্রগুলির জন্য সম্পত্তির নাম অ্যাকাউন্টিং
flat_property সম্পত্তির নাম বারবার ক্ষেত্রগুলির জন্য অ্যাকাউন্টিং নয়
value স্ট্রিং বিন্যাসে সম্পত্তি মান
previous_value স্ট্রিং বিন্যাসে পূর্ববর্তী অবস্থা থেকে সম্পত্তি মান

উদাহরণ প্রশ্ন

যখন SearchContainerView y-দিক থেকে সরানো হয়েছে তখন সমস্ত অবস্থা খুঁজুন:

  SELECT * FROM viewcapture_search
  WHERE class_name LIKE '%SearchContainerView'
    AND flat_property='translation_y'
    AND value!=previous_value

প্রোটোলগ এসকিউএল টেবিল

ProtoLog প্রোটো ডেটা ProtoLogMessage ফর্ম্যাট ব্যবহার করে। এই দৃশ্যে এই কলামগুলি অন্তর্ভুক্ত রয়েছে:

কলাম বর্ণনা
ts লগের টাইমস্ট্যাম্প
level লগ লেভেল
tag লগিং গ্রুপ ট্যাগ
message লগ বার্তা
stacktrace স্ট্যাকট্রেস (যদি পাওয়া যায়)
location কোড অবস্থান যেখান থেকে বার্তাটি আসে

উদাহরণ প্রশ্ন

  • transition ধারণকারী একটি বার্তা সহ সমস্ত লগ খুঁজুন:

    SELECT ts, message, location FROM protolog
      WHERE message LIKE '%transition%'
    
  • বৈধ লেনদেন আইডি রয়েছে এমন সমস্ত লগ খুঁজুন:

    CREATE PERFETTO VIEW valid_tx_ids AS
      SELECT DISTINCT transaction_id FROM transactions_search
      WHERE transaction_id IS NOT NULL AND transaction_id != '0';
    
    SELECT TRANS.transaction_id, message FROM valid_tx_ids TRANS
    INNER JOIN protolog LOGS
      ON LOGS.message LIKE CONCAT('%', TRANS.transaction_id, '%');
    

প্রশ্ন চালান

যখন আপনি বাম প্যানেল ব্যবহার করেন, ট্রেস অনুসন্ধান শুরু হয়। এটি কয়েক সেকেন্ড সময় নেয়। এটি শুরু হওয়ার সময়, টাইমলাইন উপলব্ধ নেই৷

ট্রেস অনুসন্ধান শুরু হওয়ার পরে, অনুসন্ধান বাক্সে একটি ক্যোয়ারী লিখুন এবং অনুসন্ধান কোয়েরি চালান ক্লিক করুন বা এটি চালানোর জন্য আপনার কীবোর্ডে এন্টার টিপুন।

শেষ হলে, ফলাফলের সারণী মধ্যম প্যানেলে দেখায়। আপনার ক্যোয়ারীটি অনুসন্ধান বাক্সের নীচে প্রদর্শিত হবে, সেশনগুলির মধ্যে ক্যোয়ারী সংরক্ষণ করার জন্য একটি ক্ষেত্র রয়েছে৷

আপনি বাম প্যানেলে সংরক্ষিত ট্যাবে ক্লিক করে সংরক্ষিত প্রশ্নগুলি অ্যাক্সেস করতে পারেন এবং সাম্প্রতিক ট্যাবে ক্লিক করে সম্প্রতি চালানো প্রশ্নগুলি অ্যাক্সেস করতে পারেন:

search viewer left panel

চিত্র 2. অনুসন্ধান দর্শক বাম প্যানেল.

ফলাফল

সমস্ত ক্যোয়ারী সারণিযুক্ত ফলাফল প্রদান করে, লগ-ভিত্তিক ট্রেস ভিউয়ারের মত ইন্টারেক্টিভ আচরণ সহ একটি স্ক্রোলযোগ্য দৃশ্যে দেখানো হয়, যেমন লেনদেন এবং প্রোটোলগ:

search viewer results

চিত্র 3. দর্শক ফলাফল অনুসন্ধান করুন.

ফলাফল সারণিতে একটি ts কলাম থাকলে, সেই কলামের মানগুলিকে টাইমস্ট্যাম্প হিসাবে ব্যাখ্যা করা হয় এবং এন্ট্রির একটি নতুন সারি হিসাবে টাইমলাইন ওভারলেতে যোগ করা হয়। এই সারিতে ক্লিক করুন এবং এন্ট্রিগুলির মধ্যে নেভিগেট করতে আপনার বাম এবং ডান তীর কীগুলি ব্যবহার করুন:

search timeline

চিত্র 4. টাইমলাইন অনুসন্ধান করুন।