diff --git a/linux-ramdump-parser-v2/debug_image_v2.py b/linux-ramdump-parser-v2/debug_image_v2.py
index 87638fc14aec9c3542afa04031119f086b539b92..778b4f6f2dd085b863f9860d1a803dab37876b2a 100755
--- a/linux-ramdump-parser-v2/debug_image_v2.py
+++ b/linux-ramdump-parser-v2/debug_image_v2.py
@@ -28,6 +28,7 @@ from cachedumplib import lookup_cache_type
 
 MEMDUMPV2_MAGIC = 0x42445953
 MAX_NUM_ENTRIES = 0x130
+TRACE_EVENT_FL_TRACEPOINT = 0x40
 
 class client(object):
     MSM_DUMP_DATA_CPU_CTX = 0x00
@@ -181,16 +182,26 @@ class DebugImage_v2():
             self.formats_out.write("\tfield:{0} {1};\toffset:{2};\tsize:{3};\tsigned:{4};\n".format(type_str, field_name, offset, size, signed))
 
     def ftrace_events_func(self, ftrace_list, ram_dump):
-        name_offset = ram_dump.field_offset('struct ftrace_event_call', 'name')
         event_offset = ram_dump.field_offset('struct ftrace_event_call', 'event')
         fmt_offset = ram_dump.field_offset('struct ftrace_event_call', 'print_fmt')
         class_offset = ram_dump.field_offset('struct ftrace_event_call', 'class')
+        flags_offset = ram_dump.field_offset('struct ftrace_event_call', 'flags')
+        flags = ram_dump.read_word(ftrace_list + flags_offset)
+
+        if (ram_dump.kernel_version >= (3, 18) and (flags & TRACE_EVENT_FL_TRACEPOINT)):
+            tp_offset = ram_dump.field_offset('struct ftrace_event_call', 'tp')
+            tp_name_offset = ram_dump.field_offset('struct tracepoint', 'name')
+            tp = ram_dump.read_word(ftrace_list + tp_offset)
+            name = ram_dump.read_word(tp + tp_name_offset)
+        else:
+            name_offset = ram_dump.field_offset('struct ftrace_event_call', 'name')
+            name = ram_dump.read_word(ftrace_list + name_offset)
+
         type_offset = ram_dump.field_offset('struct trace_event', 'type')
         fields_offset = ram_dump.field_offset('struct ftrace_event_class', 'fields')
         common_field_list = ram_dump.addr_lookup('ftrace_common_fields')
         field_next_offset = ram_dump.field_offset('struct ftrace_event_field', 'link')
 
-        name = ram_dump.read_word(ftrace_list + name_offset)
         name_str = ram_dump.read_cstring(name, 512)
         event_id = ram_dump.read_word(ftrace_list + event_offset + type_offset)
         fmt = ram_dump.read_word(ftrace_list + fmt_offset)