同步操作将从 src-openEuler/ruby 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
require 'set'LIBRUBY_SO = 'libruby.so'PROBES_D = 'probes.d'# These probes are excluded by VM_COLLECT_USAGE_DETAILS ifdef.EXCLUDE_PROBES = Set.new %w(insn insn__operand)## Detect SystemTap section headers presencestap_headers = ['\.stapsdt\.base','\.note\.stapsdt']header_regexp = %r{ (#{stap_headers.join('|')}) }section_headers = `readelf -S "#{LIBRUBY_SO}"`detected_stap_headers = section_headers.scan(header_regexp).flatten# Assume there are both headers until this is proven wrong ;)unless detected_stap_headers.size == 2puts 'ERROR: SystemTap (DTrace) headers were not detected in resulting library.'exit falseend## Find if every declared probe is propagated to resulting library# Colect probes specified in probes.d file.probes_declared = []File.open(PROBES_D) do |file|file.each_line do |line|if probe = line[/probe (\S+)\(.*\);/, 1]probes_declared << probeendendendprobes_declared = Set.new probes_declaredunless EXCLUDE_PROBES.subset? probes_declaredputs 'ERROR: Change in SystemTap (DTrace) probes definition file detected.'exit falseendprobes_declared -= EXCLUDE_PROBES# Detect probes in resulting library.get_probes_detected = %r{^\s*Provider:\s+ruby,\s+Name:\s+(\S+),\s+.*$}probes_detected = `eu-readelf -n "#{LIBRUBY_SO}"`probes_detected = Set.new probes_detected.scan(get_probes_detected).flatten# Both sets must be equal, otherwise something is wrong.unless probes_declared == probes_detectedputs 'ERROR: SystemTap (DTrace) probes were not correctly propagated into resulting library.'puts " Undetected probes: #{(probes_declared - probes_detected).sort.join(', ')}\n"," Additional detected probes: #{(probes_detected - probes_declared).sort.join(', ')}"exit falseend
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。