ruby_memprofiler_pprof 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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"