# \[Assigned\] TracePoint cannot trace attr\_accessor/reader/writer method

**URL:** <https://www.ruby-forum.com/t/assigned-tracepoint-cannot-trace-attr-accessor-reader-writer-method/232897>\
**Category:** Development\
**Created:** [November 3, 2014, 9:22am UTC](https://www.ruby-forum.com/t/assigned-tracepoint-cannot-trace-attr-accessor-reader-writer-method/232897 "2014-11-03T09:22:07Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![addis\_a](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@addis\_a](https://www.ruby-forum.com/u/addis_a)\
**Post date:** [November 3, 2014, 9:22am UTC](https://www.ruby-forum.com/t/assigned-tracepoint-cannot-trace-attr-accessor-reader-writer-method/232897/1 "2014-11-03T09:22:07Z")

</div>

Issue #10470 has been updated by Nobuyoshi N…

Description updated  
Category set to core  
Status changed from Open to Assigned  
Assignee set to Koichi Sasada  
Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN to 2.0.0: REQUIRED,  
2.1: REQUIRED

* * *

Bug #10470: TracePoint cannot trace attr\_accessor/reader/writer method

> **[Bug #10470: TracePoint cannot trace attr\_accessor/reader/writer method - Ruby...](https://bugs.ruby-lang.org/issues/10470#change-49784)**
>
> Redmine

- Author: Tomohiro Hashidate
- Status: Assigned
- Priority: Normal
- Assignee: Koichi Sasada
- Category: core
- Target version: current: 2.2.0
- ruby -v: ruby 2.2.0dev (2014-11-01 trunk 48219) [x86\_64-darwin13]
- Backport: 2.0.0: REQUIRED, 2.1: REQUIRED

* * *

TracePointを利用して`attr_accessor`で定義したメソッドの`:c_call`,  
`:c_return`イベントを取得することができません。

```ruby
class Foo
  attr_accessor :hoge

  def bar
    @bar
  end

  def initialize(val)
    @bar = val
  end
end

foo = Foo.new("FOO")

trace = TracePoint.new(:return, :c_return) do |tp|
  p [tp.lineno, tp.defined_class, tp.method_id, tp.event, tp.binding, 
tp.return_value]
end

trace.enable do
  foo.bar
  foo.hoge = "hoge"
  foo.hoge
end

```

上記のコードを実行した時、attr\_accessorで定義した`hoge`メソッドのイベントが発生しません。  
調査した所、`EXEC_EVENT_HOOK`の呼び出し自体が無いようです。  
このため、例えばpower\_assertを利用した時にアクセサメソッドの戻り値を取得できない等の問題が発生します。

attributeの読み書きを行う処理の中に`EXEC_EVENT_HOOK`を呼び出す簡単なパッチを書きましたので、添付します。

—Files--------------------------------  
fix\_attr\_accessor\_event.diff (1.98 KB)
