File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change 1+ #!/usr/bin/env ruby
2+ #
3+ # Licensed to the Apache Software Foundation (ASF) under one
4+ # or more contributor license agreements. See the NOTICE file
5+ # distributed with this work for additional information
6+ # regarding copyright ownership. The ASF licenses this file
7+ # to you under the Apache License, Version 2.0 (the
8+ # "License"); you may not use this file except in compliance
9+ # with the License. You may obtain a copy of the License at
10+ #
11+ # http://www.apache.org/licenses/LICENSE-2.0
12+ #
13+ # Unless required by applicable law or agreed to in writing,
14+ # software distributed under the License is distributed on an
15+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16+ # KIND, either express or implied. See the License for the
17+ # specific language governing permissions and limitations
18+ # under the License.
19+
20+ ARGF . each_line do |line |
21+ puts ( line )
22+ case line
23+ when /\A \s *([A-Za-z\d \/ _.-]+)\( \+ (0x\h +)\) /
24+ path = $1
25+ address = $2
26+ IO . pipe do |input_read , input_write |
27+ IO . pipe do |output_read , output_write |
28+ pid = spawn ( "addr2line" , "--exe=#{ path } " , "%#x" % address ,
29+ in : input_read ,
30+ out : output_write )
31+ input_read . close
32+ input_write . close
33+ output_write . close
34+ Process . waitpid ( pid )
35+ puts ( output_read . read )
36+ end
37+ end
38+ end
39+ end
You can’t perform that action at this time.
0 commit comments