[ruby-dev:50561] [Ruby trunk Bug#14809] calc_lineno() returns wrong location
From:
shyouhei@...
Date:
2018-06-04 03:22:34 UTC
List:
ruby-dev #50561
Issue #14809 has been updated by shyouhei (Shyouhei Urabe).
I'll take care of it.
----------------------------------------
Bug #14809: calc_lineno() returns wrong location
https://bugs.ruby-lang.org/issues/14809#change-72362
* Author: ktsj (Kazuki Tsujimoto)
* Status: Assigned
* Priority: Normal
* Assignee: shyouhei (Shyouhei Urabe)
* Target version:
* ruby -v: ruby 2.6.0dev (2018-06-02 master 63545) [x86_64-linux]
* Backport: 2.3: DONTNEED, 2.4: DONTNEED, 2.5: DONTNEED
----------------------------------------
r62051のコミット以降
```
$ cat -n t.rb
1 class String
2 def -@
3 p caller_locations(1, 1)[0]
4 end
5 end
6
7 -""
$ ruby-trunk t.rb
"t.rb:1:in `<main>'"
$ ruby-2.5 t.rb
"t.rb:7:in `<main>'"
```
のように、位置情報が正しく取れなくなるという問題が起きています。
インストラクションの種類によってPCが変更されるタイミングが異なるようになったことが原因です。
--
https://bugs.ruby-lang.org/