ruby_memprofiler_pprof 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (217) hide show
  1. checksums.yaml +4 -4
  2. data/ext/ruby_memprofiler_pprof_ext/collector.c +803 -0
  3. data/ext/ruby_memprofiler_pprof_ext/compat.c +184 -0
  4. data/ext/ruby_memprofiler_pprof_ext/compile_commands.json +1 -0
  5. data/ext/ruby_memprofiler_pprof_ext/extconf.rb +152 -0
  6. data/ext/ruby_memprofiler_pprof_ext/pprof.upb.c +199 -0
  7. data/ext/ruby_memprofiler_pprof_ext/pprof.upb.h +924 -0
  8. data/ext/ruby_memprofiler_pprof_ext/pprof_out.c +430 -0
  9. data/ext/ruby_memprofiler_pprof_ext/ruby_hacks.c +118 -0
  10. data/ext/ruby_memprofiler_pprof_ext/ruby_memprofiler_pprof.c +10 -0
  11. data/ext/ruby_memprofiler_pprof_ext/ruby_memprofiler_pprof.h +183 -0
  12. data/ext/ruby_memprofiler_pprof_ext/ruby_private/ruby26/gc_private.h +324 -0
  13. data/ext/ruby_memprofiler_pprof_ext/ruby_private/ruby27/gc_private.h +339 -0
  14. data/ext/ruby_memprofiler_pprof_ext/ruby_private/ruby30/gc_private.h +361 -0
  15. data/ext/ruby_memprofiler_pprof_ext/ruby_private/ruby31/gc_private.h +374 -0
  16. data/ext/ruby_memprofiler_pprof_ext/ruby_private.h +31 -0
  17. data/ext/ruby_memprofiler_pprof_ext/sample.c +43 -0
  18. data/ext/ruby_memprofiler_pprof_ext/vendor/backtracie/backtracie.h +268 -0
  19. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/BUILD +0 -0
  20. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/CONTRIBUTING.md +0 -0
  21. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/DESIGN.md +0 -0
  22. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/LICENSE +0 -0
  23. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/README.md +0 -0
  24. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/WORKSPACE +0 -0
  25. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/bazel/BUILD +0 -0
  26. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/bazel/amalgamate.py +0 -0
  27. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/bazel/build_defs.bzl +0 -0
  28. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/bazel/lua.BUILD +0 -0
  29. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/bazel/protobuf.patch +0 -0
  30. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/bazel/py_proto_library.bzl +0 -0
  31. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/bazel/python_downloads.bzl +0 -0
  32. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/bazel/system_python.bzl +0 -0
  33. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/bazel/upb_proto_library.bzl +0 -0
  34. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/bazel/workspace_deps.bzl +0 -0
  35. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/benchmarks/BUILD +0 -0
  36. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/benchmarks/BUILD.googleapis +0 -0
  37. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/benchmarks/benchmark.cc +0 -0
  38. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/benchmarks/build_defs.bzl +0 -0
  39. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/benchmarks/compare.py +0 -0
  40. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/benchmarks/descriptor.proto +0 -0
  41. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/benchmarks/descriptor_sv.proto +0 -0
  42. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/benchmarks/empty.proto +0 -0
  43. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/benchmarks/gen_protobuf_binary_cc.py +0 -0
  44. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/benchmarks/gen_synthetic_protos.py +0 -0
  45. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/benchmarks/gen_upb_binary_c.py +0 -0
  46. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/cmake/BUILD.bazel +0 -0
  47. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/cmake/README.md +0 -0
  48. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/cmake/build_defs.bzl +0 -0
  49. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/cmake/make_cmakelists.py +0 -0
  50. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/cmake/staleness_test.py +0 -0
  51. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/cmake/staleness_test_lib.py +0 -0
  52. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/docs/render.py +0 -0
  53. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/docs/style-guide.md +0 -0
  54. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/docs/vs-cpp-protos.md +0 -0
  55. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/docs/wrapping-upb.md +0 -0
  56. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/BUILD +0 -0
  57. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/convert.c +0 -0
  58. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/convert.h +0 -0
  59. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/descriptor.c +0 -0
  60. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/descriptor.h +0 -0
  61. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/descriptor_containers.c +0 -0
  62. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/descriptor_containers.h +0 -0
  63. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/descriptor_pool.c +0 -0
  64. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/descriptor_pool.h +0 -0
  65. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/dist/BUILD.bazel +0 -0
  66. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/dist/dist.bzl +0 -0
  67. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/extension_dict.c +0 -0
  68. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/extension_dict.h +0 -0
  69. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/map.c +0 -0
  70. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/map.h +0 -0
  71. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/message.c +0 -0
  72. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/message.h +0 -0
  73. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/minimal_test.py +0 -0
  74. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/BUILD +0 -0
  75. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/README.md +0 -0
  76. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/descriptor_database_test_wrapper.py +0 -0
  77. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/descriptor_pool_test_wrapper.py +0 -0
  78. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/descriptor_test_wrapper.py +0 -0
  79. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/generator_test_wrapper.py +0 -0
  80. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/json_format_test_wrapper.py +0 -0
  81. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/keywords_test_wrapper.py +0 -0
  82. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/message_factory_test_wrapper.py +0 -0
  83. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/message_test_wrapper.py +0 -0
  84. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/proto_builder_test_wrapper.py +0 -0
  85. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/pyproto_test_wrapper.bzl +0 -0
  86. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/reflection_test_wrapper.py +0 -0
  87. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/service_reflection_test_wrapper.py +0 -0
  88. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/symbol_database_test_wrapper.py +0 -0
  89. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/text_encoding_test_wrapper.py +0 -0
  90. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/text_format_test_wrapper.py +0 -0
  91. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/unknown_fields_test_wrapper.py +0 -0
  92. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/well_known_types_test_wrapper.py +0 -0
  93. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/pb_unit_tests/wire_format_test_wrapper.py +0 -0
  94. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/protobuf.c +0 -0
  95. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/protobuf.h +0 -0
  96. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/py_extension.bzl +0 -0
  97. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/python_api.h +0 -0
  98. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/repeated.c +0 -0
  99. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/repeated.h +0 -0
  100. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/unknown_fields.c +0 -0
  101. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/unknown_fields.h +0 -0
  102. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/python/version_script.lds +0 -0
  103. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/third_party/lunit/LICENSE +0 -0
  104. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/third_party/lunit/README.google +0 -0
  105. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/third_party/lunit/console.lua +0 -0
  106. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/third_party/lunit/lunit.lua +0 -0
  107. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/third_party/utf8_range/BUILD +0 -0
  108. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/third_party/utf8_range/LICENSE +0 -0
  109. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/third_party/utf8_range/naive.c +0 -0
  110. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/third_party/utf8_range/range2-neon.c +0 -0
  111. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/third_party/utf8_range/range2-sse.c +0 -0
  112. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/third_party/utf8_range/utf8_range.h +0 -0
  113. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/bindings/lua/BUILD.bazel +0 -0
  114. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/bindings/lua/README.md +0 -0
  115. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/bindings/lua/def.c +0 -0
  116. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/bindings/lua/lua_proto_library.bzl +0 -0
  117. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/bindings/lua/main.c +0 -0
  118. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/bindings/lua/msg.c +0 -0
  119. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/bindings/lua/test.proto +0 -0
  120. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/bindings/lua/test_upb.lua +0 -0
  121. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/bindings/lua/upb.c +0 -0
  122. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/bindings/lua/upb.h +0 -0
  123. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/bindings/lua/upb.lua +0 -0
  124. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/bindings/lua/upbc.cc +0 -0
  125. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/collections.c +0 -0
  126. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/collections.h +0 -0
  127. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/conformance_upb.c +0 -0
  128. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/conformance_upb_failures.txt +0 -0
  129. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/decode.c +0 -0
  130. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/decode.h +0 -0
  131. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/decode_fast.c +0 -0
  132. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/decode_fast.h +0 -0
  133. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/decode_internal.h +0 -0
  134. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/def.c +0 -0
  135. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/def.h +0 -0
  136. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/def.hpp +0 -0
  137. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/empty.proto +0 -0
  138. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/encode.c +0 -0
  139. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/encode.h +0 -0
  140. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/fuzz/BUILD +0 -0
  141. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/fuzz/file_descriptor_parsenew_fuzzer.cc +0 -0
  142. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/json_decode.c +0 -0
  143. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/json_decode.h +0 -0
  144. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/json_encode.c +0 -0
  145. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/json_encode.h +0 -0
  146. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/mini_table.c +0 -0
  147. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/mini_table.h +0 -0
  148. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/mini_table.hpp +0 -0
  149. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/mini_table_accessors.c +0 -0
  150. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/mini_table_accessors.h +0 -0
  151. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/mini_table_accessors_internal.h +0 -0
  152. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/mini_table_accessors_test.cc +0 -0
  153. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/mini_table_test.cc +0 -0
  154. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/msg.c +0 -0
  155. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/msg.h +0 -0
  156. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/msg_internal.h +0 -0
  157. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/msg_test.cc +0 -0
  158. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/msg_test.proto +0 -0
  159. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/port_def.inc +0 -0
  160. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/port_undef.inc +0 -0
  161. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/reflection.c +0 -0
  162. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/reflection.h +0 -0
  163. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/reflection.hpp +0 -0
  164. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/table.c +0 -0
  165. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/table_internal.h +0 -0
  166. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/test.proto +0 -0
  167. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/test_cpp.cc +0 -0
  168. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/test_cpp.proto +0 -0
  169. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/test_generated_code.cc +0 -0
  170. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/test_table.cc +0 -0
  171. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/text_encode.c +0 -0
  172. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/text_encode.h +0 -0
  173. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/upb.c +0 -0
  174. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/upb.h +0 -0
  175. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/upb.hpp +0 -0
  176. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/upb_internal.h +0 -0
  177. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/util/BUILD +0 -0
  178. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/util/README.md +0 -0
  179. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/util/compare.c +0 -0
  180. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/util/compare.h +0 -0
  181. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/util/compare_test.cc +0 -0
  182. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/util/def_to_proto.c +0 -0
  183. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/util/def_to_proto.h +0 -0
  184. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/util/def_to_proto_public_import_test.proto +0 -0
  185. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/util/def_to_proto_regular_import_test.proto +0 -0
  186. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/util/def_to_proto_test.cc +0 -0
  187. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/util/def_to_proto_test.proto +0 -0
  188. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/util/def_to_proto_weak_import_test.proto +0 -0
  189. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/util/def_to_proto_wweak_import_test.proto +0 -0
  190. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/util/required_fields.c +0 -0
  191. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/util/required_fields.h +0 -0
  192. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/util/required_fields_test.cc +0 -0
  193. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upb/util/required_fields_test.proto +0 -0
  194. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upbc/BUILD +0 -0
  195. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upbc/common.cc +0 -0
  196. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upbc/common.h +0 -0
  197. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upbc/protoc-gen-upb.cc +0 -0
  198. data/ext/{ruby_memprofiler_pprof → ruby_memprofiler_pprof_ext}/vendor/upb/upbc/protoc-gen-upbdefs.cc +0 -0
  199. data/lib/ruby_memprofiler_pprof/atfork.rb +1 -1
  200. data/lib/ruby_memprofiler_pprof/block_flusher.rb +48 -4
  201. data/lib/ruby_memprofiler_pprof/file_flusher.rb +13 -6
  202. data/lib/ruby_memprofiler_pprof/profile_app.rb +8 -12
  203. data/lib/ruby_memprofiler_pprof/profile_data.rb +7 -8
  204. data/lib/ruby_memprofiler_pprof/version.rb +1 -1
  205. data/lib/ruby_memprofiler_pprof.rb +5 -4
  206. data/libexec/ruby_memprofiler_pprof_profile +6 -6
  207. metadata +207 -200
  208. data/ext/ruby_memprofiler_pprof/backtrace.c +0 -429
  209. data/ext/ruby_memprofiler_pprof/collector.c +0 -1055
  210. data/ext/ruby_memprofiler_pprof/compat.c +0 -182
  211. data/ext/ruby_memprofiler_pprof/extconf.rb +0 -72
  212. data/ext/ruby_memprofiler_pprof/pprof.upb.c +0 -170
  213. data/ext/ruby_memprofiler_pprof/pprof.upb.h +0 -848
  214. data/ext/ruby_memprofiler_pprof/pprof_out.c +0 -285
  215. data/ext/ruby_memprofiler_pprof/ruby_memprofiler_pprof.c +0 -11
  216. data/ext/ruby_memprofiler_pprof/ruby_memprofiler_pprof.h +0 -301
  217. data/ext/ruby_memprofiler_pprof/strtab.c +0 -391
@@ -0,0 +1,184 @@
1
+ #include <errno.h>
2
+ #include <pthread.h>
3
+ #include <stdarg.h>
4
+ #include <stdlib.h>
5
+ #include <time.h>
6
+
7
+ #include <ruby.h>
8
+
9
+ #include "ruby_memprofiler_pprof.h"
10
+
11
+ #if defined(HAVE_ARC4RANDOM)
12
+ uint32_t mpp_rand() { return arc4random(); }
13
+ void mpp_rand_init() {}
14
+ #elif defined(HAVE_MRAND48_R) && defined(HAVE_GETENTROPY)
15
+ // Why? Why does glibc make it so darn difficult to just get random numbers in a way
16
+ // that isn't racy across different threads and doesn't depend on global state?
17
+ #include <sys/random.h>
18
+
19
+ static pthread_mutex_t mpp_rand_lock;
20
+ static struct drand48_data mpp_rand_buffer;
21
+
22
+ uint32_t mpp_rand() {
23
+ pthread_mutex_lock(&mpp_rand_lock);
24
+ long int result;
25
+ int ret = mrand48_r(&mpp_rand_buffer, &result);
26
+ if (ret < 0) {
27
+ rb_bug("mrand48_r returned -1?");
28
+ }
29
+ pthread_mutex_unlock(&mpp_rand_lock);
30
+ return (uint32_t)result;
31
+ }
32
+
33
+ void mpp_rand_init() {
34
+ pthread_mutex_init(&mpp_rand_lock, NULL);
35
+ memset(&mpp_rand_buffer, 0, sizeof(struct drand48_data));
36
+ unsigned short int seedbuf[3];
37
+ int ret;
38
+ ret = getentropy(seedbuf, sizeof(seedbuf));
39
+ if (ret == -1) {
40
+ rb_bug("getentropy returned -1?");
41
+ }
42
+ ret = seed48_r(seedbuf, &mpp_rand_buffer);
43
+ if (ret < 0) {
44
+ rb_bug("seed48_r returned -1?");
45
+ }
46
+ }
47
+ #else
48
+ #error "No suitable RNG implementation"
49
+ #endif
50
+
51
+ struct timespec mpp_gettime_monotonic() {
52
+ struct timespec tv;
53
+ clock_gettime(CLOCK_MONOTONIC, &tv);
54
+ return tv;
55
+ }
56
+
57
+ int64_t mpp_time_delta_nsec(struct timespec t1, struct timespec t2) {
58
+ return (t2.tv_sec - t1.tv_sec) * 1000000000 + (t2.tv_nsec - t1.tv_nsec);
59
+ }
60
+
61
+ void *mpp_xcalloc(size_t sz) {
62
+ void *mem = mpp_xmalloc(sz);
63
+ memset(mem, 0, sz);
64
+ return mem;
65
+ }
66
+
67
+ void *mpp_xmalloc(size_t sz) {
68
+ void *mem = ruby_xmalloc(sz);
69
+ if (!mem) {
70
+ MPP_ASSERT_FAIL("failed to allocate memory in ruby_memprofiler_pprof gem");
71
+ }
72
+ return mem;
73
+ }
74
+
75
+ void mpp_free(void *mem) { ruby_xfree(mem); }
76
+
77
+ void *mpp_realloc(void *mem, size_t newsz) {
78
+ void *newmem = ruby_xrealloc(mem, newsz);
79
+ if (!newmem) {
80
+ MPP_ASSERT_FAIL("failed to allocate memory in ruby_memprofiler_pprof gem");
81
+ }
82
+ return newmem;
83
+ }
84
+
85
+ void mpp_pthread_mutex_lock(pthread_mutex_t *m) {
86
+ if (pthread_mutex_lock(m) != 0) {
87
+ MPP_ASSERT_FAIL("failed to lock mutex in ruby_memprofiler_pprof gem");
88
+ }
89
+ }
90
+
91
+ void mpp_pthread_mutex_unlock(pthread_mutex_t *m) {
92
+ if (pthread_mutex_unlock(m) != 0) {
93
+ MPP_ASSERT_FAIL("failed to unlock mutex in ruby_memprofiler_pprof gem");
94
+ }
95
+ }
96
+
97
+ int mpp_pthread_mutex_trylock(pthread_mutex_t *m) {
98
+ int r = pthread_mutex_trylock(m);
99
+ if (r != 0 && r != EBUSY) {
100
+ MPP_ASSERT_FAIL("failed to trylock mutex in ruby_memprofiler_pprof gem");
101
+ }
102
+ return r;
103
+ }
104
+
105
+ void mpp_pthread_mutex_init(pthread_mutex_t *m, const pthread_mutexattr_t *attr) {
106
+ if (pthread_mutex_init(m, attr) != 0) {
107
+ MPP_ASSERT_FAIL("failed to init mutex in ruby_memprofiler_pprof gem");
108
+ }
109
+ }
110
+
111
+ void mpp_pthread_mutex_destroy(pthread_mutex_t *m) {
112
+ if (pthread_mutex_destroy(m) != 0) {
113
+ MPP_ASSERT_FAIL("failed to destroy mutex in ruby_memprofiler_pprof gem");
114
+ }
115
+ }
116
+
117
+ void mpp_pthread_mutexattr_init(pthread_mutexattr_t *a) {
118
+ if (pthread_mutexattr_init(a) != 0) {
119
+ MPP_ASSERT_FAIL("failed to init pthread_mutexattr in ruby_memprofiler_pprof gem");
120
+ }
121
+ }
122
+
123
+ void mpp_pthread_mutexattr_destroy(pthread_mutexattr_t *a) {
124
+ if (pthread_mutexattr_destroy(a) != 0) {
125
+ MPP_ASSERT_FAIL("failed to destroy pthread_mutexattr in ruby_memprofiler_pprof gem");
126
+ }
127
+ }
128
+
129
+ void mpp_pthread_mutexattr_settype(pthread_mutexattr_t *a, int type) {
130
+ if (pthread_mutexattr_settype(a, type) != 0) {
131
+ MPP_ASSERT_FAIL("failed to set type on pthread_mutexattr in ruby_memprofiler_pprof gem");
132
+ }
133
+ }
134
+
135
+ void mpp_pthread_atfork(void (*prepare)(void), void (*parent)(void), void (*child)(void)) {
136
+ if (pthread_atfork(prepare, parent, child) != 0) {
137
+ MPP_ASSERT_FAIL("pthread_atfork failed in ruby_memprofiler_pprof gem");
138
+ }
139
+ }
140
+
141
+ __attribute__((noreturn)) void mpp_assert_fail(const char *msg, const char *assertion, const char *file,
142
+ const char *line, const char *fn) {
143
+ char final_msg_buf[1024];
144
+ int32_t final_msg_ix = 0;
145
+ int32_t final_msg_remaining = sizeof(final_msg_buf) - 2; // -1 for null terminator, -1 for trailing newline.
146
+
147
+ #define FINAL_MSG_BUF_APPEND(str) \
148
+ do { \
149
+ int32_t seg_len = (int32_t)strlen(str); \
150
+ int32_t copy_n = (seg_len > final_msg_remaining) ? final_msg_remaining : seg_len; \
151
+ memcpy(final_msg_buf + final_msg_ix, str, copy_n); \
152
+ final_msg_ix += seg_len; \
153
+ final_msg_remaining -= seg_len; \
154
+ } while (0)
155
+
156
+ FINAL_MSG_BUF_APPEND("assertion failure in ruby_memprofiler_pprof gem: ");
157
+ FINAL_MSG_BUF_APPEND(msg);
158
+ FINAL_MSG_BUF_APPEND(" (");
159
+ FINAL_MSG_BUF_APPEND(assertion);
160
+ FINAL_MSG_BUF_APPEND("; at ");
161
+ FINAL_MSG_BUF_APPEND(file);
162
+ FINAL_MSG_BUF_APPEND(":");
163
+ FINAL_MSG_BUF_APPEND(line);
164
+ FINAL_MSG_BUF_APPEND(" ");
165
+ FINAL_MSG_BUF_APPEND(fn);
166
+ FINAL_MSG_BUF_APPEND(")");
167
+
168
+ // We're guaranteed to have left enough space for this because we started final_msg_remaining off
169
+ // with sizeof(buf) - 2.
170
+ final_msg_remaining += 2;
171
+ FINAL_MSG_BUF_APPEND("\n\0");
172
+
173
+ __attribute__((unused)) size_t r = write(STDERR_FILENO, final_msg_buf, final_msg_ix + 1);
174
+ abort();
175
+ }
176
+
177
+ void mpp_log_debug(const char *pattern, ...) {
178
+ va_list args;
179
+ va_start(args, pattern);
180
+ fprintf(stderr, "ruby_memprofiler_pprof gem: ");
181
+ vfprintf(stderr, pattern, args);
182
+ fprintf(stderr, "\n");
183
+ va_end(args);
184
+ }
@@ -0,0 +1 @@
1
+ ext/ruby_memprofiler_pprof_ext/Users/ktsanaktsidis/Code/zendesk/ruby_memprofiler_pprof/tmp/arm64-dar
@@ -0,0 +1,152 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "mkmf"
4
+
5
+ # Support GC.compact on Ruby >=- 2.7
6
+ have_func("rb_gc_mark_movable", ["ruby.h"])
7
+ # Handle Ractors
8
+ have_func("rb_ext_ractor_safe", ["ruby.h"])
9
+
10
+ # Find a random number generator API that doesn't have global state.
11
+ has_arc4random = have_func("arc4random", ["stdlib.h"])
12
+ has_mrand48_r = have_func("mrand48_r", ["stdlib.h"])
13
+ has_getentropy = have_func("getentropy", ["sys/random.h"])
14
+ if !has_arc4random && !(has_mrand48_r && has_getentropy)
15
+ abort "Need either arc4random (BSD) or mrand48_r/getentropy (GNU)"
16
+ end
17
+
18
+ # Need zlib
19
+ has_zlib_headers = have_header("zlib.h")
20
+ has_zlib_lib = have_library("z")
21
+ raise "Zlib headers & library are required!" unless has_zlib_headers && has_zlib_lib
22
+
23
+ # Need to actually link pthreads properly
24
+ have_library("pthread") or raise "missing pthread library"
25
+ have_func("clock_gettime", ["time.h"]) or raise "missing clock_gettime"
26
+
27
+ ruby_version = Gem::Version.new RUBY_VERSION
28
+
29
+ # Ruby >= 3.1 has deprecated/no-opp'd rb_gc_force_recycle, which is good for us, because
30
+ # objects freed with that method do not get the freeobj tracepoint called on them.
31
+ if Gem::Requirement.new("< 3.1").satisfied_by?(ruby_version)
32
+ $defs << "-DHAVE_WORKING_RB_GC_FORCE_RECYCLE"
33
+ end
34
+
35
+ if Gem::Requirement.new("~> 2.6.0").satisfied_by?(ruby_version)
36
+ $VPATH << "$(srcdir)/ruby_private/ruby26"
37
+ $INCFLAGS << " -I#{File.join($srcdir, "ruby_private/ruby26")}"
38
+ elsif Gem::Requirement.new("~> 2.7.0").satisfied_by?(ruby_version)
39
+ $VPATH << "$(srcdir)/ruby_private/ruby27"
40
+ $INCFLAGS << " -I#{File.join($srcdir, "ruby_private/ruby27")}"
41
+ elsif Gem::Requirement.new("~> 3.0.0").satisfied_by?(ruby_version)
42
+ $VPATH << "$(srcdir)/ruby_private/ruby30"
43
+ $INCFLAGS << " -I#{File.join($srcdir, "ruby_private/ruby30")}"
44
+ elsif Gem::Requirement.new("~> 3.1.0").satisfied_by?(ruby_version)
45
+ $VPATH << "$(srcdir)/ruby_private/ruby31"
46
+ $INCFLAGS << " -I#{File.join($srcdir, "ruby_private/ruby31")}"
47
+ else
48
+ raise "Not compatible with Ruby #{ruby_version}"
49
+ end
50
+
51
+ # Ask the ruby interpreter at runtime if these features are enabled or not
52
+ # The values detected this way will be used if they are not present in
53
+ # the mjit header.
54
+ gc_opt_keys = %w[
55
+ GC_DEBUG
56
+ USE_RGENGC
57
+ RGENGC_DEBUG
58
+ RGENGC_CHECK_MODE
59
+ RGENGC_PROFILE
60
+ RGENGC_ESTIMATE_OLDMALLOC
61
+ GC_PROFILE_MORE_DETAIL
62
+ GC_ENABLE_LAZY_SWEEP
63
+ CALC_EXACT_MALLOC_SIZE
64
+ MALLOC_ALLOCATED_SIZE
65
+ MALLOC_ALLOCATED_SIZE_CHECK
66
+ GC_PROFILE_DETAIL_MEMORY
67
+ ]
68
+ gc_opt_keys.each do |key|
69
+ $defs << if GC::OPTS.include?(key)
70
+ "-D#{key}=1"
71
+ else
72
+ "-D#{key}=0"
73
+ end
74
+ end
75
+
76
+ # When including the mjit header, it needs to come _before_ ruby.h otherwise
77
+ # the C compiler will spew out multiple definition errors. So we pass a block
78
+ # to the various have_* methods to strip that out (just the first one).
79
+ STRIP_RUBY_INCLUDE = proc do |src|
80
+ src.sub(/#\s*include\s+["<]ruby\.h[">]/, "")
81
+ end
82
+
83
+ # Record where to find the mjit header
84
+ RUBY_MJIT_HEADER = "rb_mjit_min_header-#{RUBY_VERSION}.h"
85
+ $defs << "-DRUBY_MJIT_HEADER=\\\"#{RUBY_MJIT_HEADER}\\\""
86
+ have_header(RUBY_MJIT_HEADER, &STRIP_RUBY_INCLUDE) or raise "mjit header #{RUBY_MJIT_HEADER} not found"
87
+
88
+ # Whether or not we have variable-sized slots in Ruby 3.1+
89
+ checking_for checking_message("variable sized heap slots") do
90
+ variable_slots_src = <<~CLANG
91
+ #include <#{RUBY_MJIT_HEADER}>
92
+ #include <ruby.h>
93
+ #include <ruby/re.h>
94
+ #include "gc_private.h"
95
+
96
+ int s = (char *)&((struct heap_page *)0)->slot_size - (char *)0;
97
+ int main(int argc, char **argv) {
98
+ return !!argv[argc];
99
+ }
100
+ CLANG
101
+ if try_compile(variable_slots_src, &STRIP_RUBY_INCLUDE)
102
+ $defs << "-DHAVE_VARIABLE_SLOT_SIZE"
103
+ true
104
+ else
105
+ false
106
+ end
107
+ end
108
+
109
+ if have_macro("GET_RACTOR", [RUBY_MJIT_HEADER], &STRIP_RUBY_INCLUDE)
110
+ $defs << "-DHAVE_GET_RACTOR"
111
+ end
112
+
113
+ # Set our cflags up _only after_ we have run all the existence checks above; otherwise
114
+ # stuff like -Werror can break the test programs.
115
+ append_cflags([
116
+ "-g", # Compile with debug info
117
+ "-D_GNU_SOURCE", "-std=gnu11", # Use GNU C extensions (e.g. we use this for atomics)
118
+ "-fvisibility=hidden", # Make sure our upb symbols don't clobber any others from other exts
119
+ "-fno-optimize-sibling-calls"
120
+ ])
121
+ append_cflags(["-Wall", "-Wextra"]) # Enable all the warnings
122
+ # These diagnostics are not very interesting at all, just disable them.
123
+ append_cflags([
124
+ "-Wno-unused-parameter",
125
+ "-Wno-declaration-after-statement",
126
+ "-Wno-suggest-attribute=noreturn",
127
+ "-Wno-suggest-attribute=format"
128
+ ])
129
+
130
+ # Compile the upb objects into our extension as well.
131
+ $srcs = Dir.glob(File.join($srcdir, "*.c"))
132
+ $srcs += [
133
+ "upb/decode.c",
134
+ "upb/encode.c",
135
+ "upb/msg.c",
136
+ "upb/table.c",
137
+ "upb/upb.c",
138
+ "third_party/utf8_range/naive.c",
139
+ "third_party/utf8_range/range2-neon.c",
140
+ "third_party/utf8_range/range2-sse.c"
141
+ ].map { |f| File.join($srcdir, "vendor/upb", f) }
142
+ $VPATH << "$(srcdir)/vendor/upb/upb"
143
+ $VPATH << "$(srcdir)/vendor/upb/third_party/utf8_range"
144
+ $INCFLAGS << " -I#{File.join($srcdir, "vendor/upb")}"
145
+
146
+ # Include the vendored Backtracie header too
147
+ $INCFLAGS << " -I#{File.join($srcdir, 'vendor/backtracie')}"
148
+
149
+ dir_config("ruby")
150
+
151
+ create_header
152
+ create_makefile "ruby_memprofiler_pprof_ext"
@@ -0,0 +1,199 @@
1
+ /* This file was generated by upbc (the upb compiler) from the input
2
+ * file:
3
+ *
4
+ * pprof.proto
5
+ *
6
+ * Do not edit -- your changes will be discarded when the file is
7
+ * regenerated. */
8
+
9
+ #include "pprof.upb.h"
10
+ #include "upb/msg_internal.h"
11
+ #include <stddef.h>
12
+
13
+ #include "upb/port_def.inc"
14
+
15
+ static const upb_MiniTable_Sub perftools_profiles_Profile_submsgs[6] = {
16
+ {.submsg = &perftools_profiles_ValueType_msginit}, {.submsg = &perftools_profiles_Sample_msginit},
17
+ {.submsg = &perftools_profiles_Mapping_msginit}, {.submsg = &perftools_profiles_Location_msginit},
18
+ {.submsg = &perftools_profiles_Function_msginit}, {.submsg = &perftools_profiles_ValueType_msginit},
19
+ };
20
+
21
+ static const upb_MiniTable_Field perftools_profiles_Profile__fields[14] = {
22
+ {1, UPB_SIZE(4, 8), UPB_SIZE(0, 0), 0, 11, kUpb_FieldMode_Array | (kUpb_FieldRep_Pointer << kUpb_FieldRep_Shift)},
23
+ {2, UPB_SIZE(8, 16), UPB_SIZE(0, 0), 1, 11, kUpb_FieldMode_Array | (kUpb_FieldRep_Pointer << kUpb_FieldRep_Shift)},
24
+ {3, UPB_SIZE(12, 24), UPB_SIZE(0, 0), 2, 11, kUpb_FieldMode_Array | (kUpb_FieldRep_Pointer << kUpb_FieldRep_Shift)},
25
+ {4, UPB_SIZE(16, 32), UPB_SIZE(0, 0), 3, 11, kUpb_FieldMode_Array | (kUpb_FieldRep_Pointer << kUpb_FieldRep_Shift)},
26
+ {5, UPB_SIZE(20, 40), UPB_SIZE(0, 0), 4, 11, kUpb_FieldMode_Array | (kUpb_FieldRep_Pointer << kUpb_FieldRep_Shift)},
27
+ {6, UPB_SIZE(24, 48), UPB_SIZE(0, 0), kUpb_NoSub, 9,
28
+ kUpb_FieldMode_Array | (kUpb_FieldRep_Pointer << kUpb_FieldRep_Shift)},
29
+ {7, UPB_SIZE(40, 72), UPB_SIZE(0, 0), kUpb_NoSub, 3,
30
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
31
+ {8, UPB_SIZE(48, 80), UPB_SIZE(0, 0), kUpb_NoSub, 3,
32
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
33
+ {9, UPB_SIZE(56, 88), UPB_SIZE(0, 0), kUpb_NoSub, 3,
34
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
35
+ {10, UPB_SIZE(64, 96), UPB_SIZE(0, 0), kUpb_NoSub, 3,
36
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
37
+ {11, UPB_SIZE(28, 56), UPB_SIZE(1, 1), 5, 11,
38
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_Pointer << kUpb_FieldRep_Shift)},
39
+ {12, UPB_SIZE(72, 104), UPB_SIZE(0, 0), kUpb_NoSub, 3,
40
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
41
+ {13, UPB_SIZE(32, 64), UPB_SIZE(0, 0), kUpb_NoSub, 3,
42
+ kUpb_FieldMode_Array | kUpb_LabelFlags_IsPacked | (kUpb_FieldRep_Pointer << kUpb_FieldRep_Shift)},
43
+ {14, UPB_SIZE(80, 112), UPB_SIZE(0, 0), kUpb_NoSub, 3,
44
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
45
+ };
46
+
47
+ const upb_MiniTable perftools_profiles_Profile_msginit = {
48
+ &perftools_profiles_Profile_submsgs[0],
49
+ &perftools_profiles_Profile__fields[0],
50
+ UPB_SIZE(88, 120),
51
+ 14,
52
+ kUpb_ExtMode_NonExtendable,
53
+ 14,
54
+ 255,
55
+ 0,
56
+ };
57
+
58
+ static const upb_MiniTable_Field perftools_profiles_ValueType__fields[2] = {
59
+ {1, UPB_SIZE(0, 0), UPB_SIZE(0, 0), kUpb_NoSub, 3,
60
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
61
+ {2, UPB_SIZE(8, 8), UPB_SIZE(0, 0), kUpb_NoSub, 3,
62
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
63
+ };
64
+
65
+ const upb_MiniTable perftools_profiles_ValueType_msginit = {
66
+ NULL, &perftools_profiles_ValueType__fields[0], UPB_SIZE(16, 24), 2, kUpb_ExtMode_NonExtendable, 2, 255, 0,
67
+ };
68
+
69
+ static const upb_MiniTable_Sub perftools_profiles_Sample_submsgs[1] = {
70
+ {.submsg = &perftools_profiles_Label_msginit},
71
+ };
72
+
73
+ static const upb_MiniTable_Field perftools_profiles_Sample__fields[3] = {
74
+ {1, UPB_SIZE(0, 0), UPB_SIZE(0, 0), kUpb_NoSub, 4,
75
+ kUpb_FieldMode_Array | kUpb_LabelFlags_IsPacked | (kUpb_FieldRep_Pointer << kUpb_FieldRep_Shift)},
76
+ {2, UPB_SIZE(4, 8), UPB_SIZE(0, 0), kUpb_NoSub, 3,
77
+ kUpb_FieldMode_Array | kUpb_LabelFlags_IsPacked | (kUpb_FieldRep_Pointer << kUpb_FieldRep_Shift)},
78
+ {3, UPB_SIZE(8, 16), UPB_SIZE(0, 0), 0, 11, kUpb_FieldMode_Array | (kUpb_FieldRep_Pointer << kUpb_FieldRep_Shift)},
79
+ };
80
+
81
+ const upb_MiniTable perftools_profiles_Sample_msginit = {
82
+ &perftools_profiles_Sample_submsgs[0],
83
+ &perftools_profiles_Sample__fields[0],
84
+ UPB_SIZE(12, 24),
85
+ 3,
86
+ kUpb_ExtMode_NonExtendable,
87
+ 3,
88
+ 255,
89
+ 0,
90
+ };
91
+
92
+ static const upb_MiniTable_Field perftools_profiles_Label__fields[4] = {
93
+ {1, UPB_SIZE(0, 0), UPB_SIZE(0, 0), kUpb_NoSub, 3,
94
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
95
+ {2, UPB_SIZE(8, 8), UPB_SIZE(0, 0), kUpb_NoSub, 3,
96
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
97
+ {3, UPB_SIZE(16, 16), UPB_SIZE(0, 0), kUpb_NoSub, 3,
98
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
99
+ {4, UPB_SIZE(24, 24), UPB_SIZE(0, 0), kUpb_NoSub, 3,
100
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
101
+ };
102
+
103
+ const upb_MiniTable perftools_profiles_Label_msginit = {
104
+ NULL, &perftools_profiles_Label__fields[0], UPB_SIZE(32, 40), 4, kUpb_ExtMode_NonExtendable, 4, 255, 0,
105
+ };
106
+
107
+ static const upb_MiniTable_Field perftools_profiles_Mapping__fields[10] = {
108
+ {1, UPB_SIZE(8, 8), UPB_SIZE(0, 0), kUpb_NoSub, 4,
109
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
110
+ {2, UPB_SIZE(16, 16), UPB_SIZE(0, 0), kUpb_NoSub, 4,
111
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
112
+ {3, UPB_SIZE(24, 24), UPB_SIZE(0, 0), kUpb_NoSub, 4,
113
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
114
+ {4, UPB_SIZE(32, 32), UPB_SIZE(0, 0), kUpb_NoSub, 4,
115
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
116
+ {5, UPB_SIZE(40, 40), UPB_SIZE(0, 0), kUpb_NoSub, 3,
117
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
118
+ {6, UPB_SIZE(48, 48), UPB_SIZE(0, 0), kUpb_NoSub, 3,
119
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
120
+ {7, UPB_SIZE(0, 0), UPB_SIZE(0, 0), kUpb_NoSub, 8,
121
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)},
122
+ {8, UPB_SIZE(1, 1), UPB_SIZE(0, 0), kUpb_NoSub, 8,
123
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)},
124
+ {9, UPB_SIZE(2, 2), UPB_SIZE(0, 0), kUpb_NoSub, 8,
125
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)},
126
+ {10, UPB_SIZE(3, 3), UPB_SIZE(0, 0), kUpb_NoSub, 8,
127
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)},
128
+ };
129
+
130
+ const upb_MiniTable perftools_profiles_Mapping_msginit = {
131
+ NULL, &perftools_profiles_Mapping__fields[0], UPB_SIZE(56, 56), 10, kUpb_ExtMode_NonExtendable, 10, 255, 0,
132
+ };
133
+
134
+ static const upb_MiniTable_Sub perftools_profiles_Location_submsgs[1] = {
135
+ {.submsg = &perftools_profiles_Line_msginit},
136
+ };
137
+
138
+ static const upb_MiniTable_Field perftools_profiles_Location__fields[5] = {
139
+ {1, UPB_SIZE(8, 16), UPB_SIZE(0, 0), kUpb_NoSub, 4,
140
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
141
+ {2, UPB_SIZE(16, 24), UPB_SIZE(0, 0), kUpb_NoSub, 4,
142
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
143
+ {3, UPB_SIZE(24, 32), UPB_SIZE(0, 0), kUpb_NoSub, 4,
144
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
145
+ {4, UPB_SIZE(4, 8), UPB_SIZE(0, 0), 0, 11, kUpb_FieldMode_Array | (kUpb_FieldRep_Pointer << kUpb_FieldRep_Shift)},
146
+ {5, UPB_SIZE(0, 0), UPB_SIZE(0, 0), kUpb_NoSub, 8,
147
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_1Byte << kUpb_FieldRep_Shift)},
148
+ };
149
+
150
+ const upb_MiniTable perftools_profiles_Location_msginit = {
151
+ &perftools_profiles_Location_submsgs[0],
152
+ &perftools_profiles_Location__fields[0],
153
+ UPB_SIZE(32, 40),
154
+ 5,
155
+ kUpb_ExtMode_NonExtendable,
156
+ 5,
157
+ 255,
158
+ 0,
159
+ };
160
+
161
+ static const upb_MiniTable_Field perftools_profiles_Line__fields[2] = {
162
+ {1, UPB_SIZE(0, 0), UPB_SIZE(0, 0), kUpb_NoSub, 4,
163
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
164
+ {2, UPB_SIZE(8, 8), UPB_SIZE(0, 0), kUpb_NoSub, 3,
165
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
166
+ };
167
+
168
+ const upb_MiniTable perftools_profiles_Line_msginit = {
169
+ NULL, &perftools_profiles_Line__fields[0], UPB_SIZE(16, 24), 2, kUpb_ExtMode_NonExtendable, 2, 255, 0,
170
+ };
171
+
172
+ static const upb_MiniTable_Field perftools_profiles_Function__fields[5] = {
173
+ {1, UPB_SIZE(0, 0), UPB_SIZE(0, 0), kUpb_NoSub, 4,
174
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
175
+ {2, UPB_SIZE(8, 8), UPB_SIZE(0, 0), kUpb_NoSub, 3,
176
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
177
+ {3, UPB_SIZE(16, 16), UPB_SIZE(0, 0), kUpb_NoSub, 3,
178
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
179
+ {4, UPB_SIZE(24, 24), UPB_SIZE(0, 0), kUpb_NoSub, 3,
180
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
181
+ {5, UPB_SIZE(32, 32), UPB_SIZE(0, 0), kUpb_NoSub, 3,
182
+ kUpb_FieldMode_Scalar | (kUpb_FieldRep_8Byte << kUpb_FieldRep_Shift)},
183
+ };
184
+
185
+ const upb_MiniTable perftools_profiles_Function_msginit = {
186
+ NULL, &perftools_profiles_Function__fields[0], UPB_SIZE(40, 40), 5, kUpb_ExtMode_NonExtendable, 5, 255, 0,
187
+ };
188
+
189
+ static const upb_MiniTable *messages_layout[8] = {
190
+ &perftools_profiles_Profile_msginit, &perftools_profiles_ValueType_msginit, &perftools_profiles_Sample_msginit,
191
+ &perftools_profiles_Label_msginit, &perftools_profiles_Mapping_msginit, &perftools_profiles_Location_msginit,
192
+ &perftools_profiles_Line_msginit, &perftools_profiles_Function_msginit,
193
+ };
194
+
195
+ const upb_MiniTable_File pprof_proto_upb_file_layout = {
196
+ messages_layout, NULL, NULL, 8, 0, 0,
197
+ };
198
+
199
+ #include "upb/port_undef.inc"