frida 16.2.1 → 16.2.3

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 (386) hide show
  1. package/BSDmakefile +6 -0
  2. package/Makefile +16 -0
  3. package/README.md +14 -11
  4. package/configure +18 -0
  5. package/configure.bat +22 -0
  6. package/dist/native.js +0 -8
  7. package/lib/application.ts +98 -0
  8. package/lib/authentication.ts +3 -0
  9. package/lib/build.py +50 -0
  10. package/lib/bus.ts +30 -0
  11. package/lib/cancellable.ts +33 -0
  12. package/lib/child.ts +15 -0
  13. package/lib/crash.ts +11 -0
  14. package/lib/device.ts +329 -0
  15. package/lib/device_manager.ts +69 -0
  16. package/lib/endpoint_parameters.ts +56 -0
  17. package/lib/icon.ts +15 -0
  18. package/lib/index.ts +311 -0
  19. package/lib/iostream.ts +78 -0
  20. package/lib/meson.build +53 -0
  21. package/lib/native.ts +9 -0
  22. package/lib/portal_membership.ts +10 -0
  23. package/lib/portal_service.ts +105 -0
  24. package/lib/process.ts +57 -0
  25. package/lib/relay.ts +44 -0
  26. package/lib/script.ts +352 -0
  27. package/lib/session.ts +113 -0
  28. package/lib/signals.ts +45 -0
  29. package/lib/socket_address.ts +35 -0
  30. package/lib/spawn.ts +4 -0
  31. package/lib/system_parameters.ts +78 -0
  32. package/make.bat +23 -0
  33. package/meson.build +160 -0
  34. package/meson.options +11 -0
  35. package/package.json +27 -6
  36. package/releng/deps.py +1133 -0
  37. package/releng/deps.toml +391 -0
  38. package/releng/devkit-assets/frida-core-example-unix.c +188 -0
  39. package/releng/devkit-assets/frida-core-example-windows.c +197 -0
  40. package/releng/devkit-assets/frida-core-example.sln +28 -0
  41. package/releng/devkit-assets/frida-core-example.vcxproj +157 -0
  42. package/releng/devkit-assets/frida-core-example.vcxproj.filters +27 -0
  43. package/releng/devkit-assets/frida-gum-example-unix.c +122 -0
  44. package/releng/devkit-assets/frida-gum-example-windows.c +132 -0
  45. package/releng/devkit-assets/frida-gum-example.sln +28 -0
  46. package/releng/devkit-assets/frida-gum-example.vcxproj +157 -0
  47. package/releng/devkit-assets/frida-gum-example.vcxproj.filters +27 -0
  48. package/releng/devkit-assets/frida-gumjs-example-unix.c +84 -0
  49. package/releng/devkit-assets/frida-gumjs-example-windows.c +91 -0
  50. package/releng/devkit-assets/frida-gumjs-example.sln +28 -0
  51. package/releng/devkit-assets/frida-gumjs-example.vcxproj +157 -0
  52. package/releng/devkit-assets/frida-gumjs-example.vcxproj.filters +27 -0
  53. package/releng/devkit.py +535 -0
  54. package/releng/env.py +420 -0
  55. package/releng/env_android.py +150 -0
  56. package/releng/env_apple.py +176 -0
  57. package/releng/env_generic.py +373 -0
  58. package/releng/frida_version.py +69 -0
  59. package/releng/machine_file.py +44 -0
  60. package/releng/machine_spec.py +290 -0
  61. package/releng/meson/meson.py +27 -0
  62. package/releng/meson/mesonbuild/__init__.py +0 -0
  63. package/releng/meson/mesonbuild/_pathlib.py +63 -0
  64. package/releng/meson/mesonbuild/_typing.py +69 -0
  65. package/releng/meson/mesonbuild/arglist.py +321 -0
  66. package/releng/meson/mesonbuild/ast/__init__.py +23 -0
  67. package/releng/meson/mesonbuild/ast/interpreter.py +441 -0
  68. package/releng/meson/mesonbuild/ast/introspection.py +374 -0
  69. package/releng/meson/mesonbuild/ast/postprocess.py +109 -0
  70. package/releng/meson/mesonbuild/ast/printer.py +620 -0
  71. package/releng/meson/mesonbuild/ast/visitor.py +161 -0
  72. package/releng/meson/mesonbuild/backend/__init__.py +0 -0
  73. package/releng/meson/mesonbuild/backend/backends.py +2047 -0
  74. package/releng/meson/mesonbuild/backend/ninjabackend.py +3808 -0
  75. package/releng/meson/mesonbuild/backend/nonebackend.py +26 -0
  76. package/releng/meson/mesonbuild/backend/vs2010backend.py +2078 -0
  77. package/releng/meson/mesonbuild/backend/vs2012backend.py +35 -0
  78. package/releng/meson/mesonbuild/backend/vs2013backend.py +34 -0
  79. package/releng/meson/mesonbuild/backend/vs2015backend.py +35 -0
  80. package/releng/meson/mesonbuild/backend/vs2017backend.py +59 -0
  81. package/releng/meson/mesonbuild/backend/vs2019backend.py +54 -0
  82. package/releng/meson/mesonbuild/backend/vs2022backend.py +54 -0
  83. package/releng/meson/mesonbuild/backend/xcodebackend.py +1781 -0
  84. package/releng/meson/mesonbuild/build.py +3249 -0
  85. package/releng/meson/mesonbuild/cargo/__init__.py +5 -0
  86. package/releng/meson/mesonbuild/cargo/builder.py +238 -0
  87. package/releng/meson/mesonbuild/cargo/cfg.py +274 -0
  88. package/releng/meson/mesonbuild/cargo/interpreter.py +733 -0
  89. package/releng/meson/mesonbuild/cargo/manifest.py +227 -0
  90. package/releng/meson/mesonbuild/cargo/version.py +95 -0
  91. package/releng/meson/mesonbuild/cmake/__init__.py +28 -0
  92. package/releng/meson/mesonbuild/cmake/common.py +331 -0
  93. package/releng/meson/mesonbuild/cmake/data/__init__.py +0 -0
  94. package/releng/meson/mesonbuild/cmake/data/preload.cmake +82 -0
  95. package/releng/meson/mesonbuild/cmake/executor.py +241 -0
  96. package/releng/meson/mesonbuild/cmake/fileapi.py +324 -0
  97. package/releng/meson/mesonbuild/cmake/generator.py +186 -0
  98. package/releng/meson/mesonbuild/cmake/interpreter.py +1267 -0
  99. package/releng/meson/mesonbuild/cmake/toolchain.py +248 -0
  100. package/releng/meson/mesonbuild/cmake/traceparser.py +814 -0
  101. package/releng/meson/mesonbuild/cmake/tracetargets.py +161 -0
  102. package/releng/meson/mesonbuild/compilers/__init__.py +86 -0
  103. package/releng/meson/mesonbuild/compilers/asm.py +307 -0
  104. package/releng/meson/mesonbuild/compilers/c.py +788 -0
  105. package/releng/meson/mesonbuild/compilers/c_function_attributes.py +143 -0
  106. package/releng/meson/mesonbuild/compilers/compilers.py +1388 -0
  107. package/releng/meson/mesonbuild/compilers/cpp.py +1035 -0
  108. package/releng/meson/mesonbuild/compilers/cs.py +136 -0
  109. package/releng/meson/mesonbuild/compilers/cuda.py +806 -0
  110. package/releng/meson/mesonbuild/compilers/cython.py +91 -0
  111. package/releng/meson/mesonbuild/compilers/d.py +861 -0
  112. package/releng/meson/mesonbuild/compilers/detect.py +1396 -0
  113. package/releng/meson/mesonbuild/compilers/fortran.py +523 -0
  114. package/releng/meson/mesonbuild/compilers/java.py +113 -0
  115. package/releng/meson/mesonbuild/compilers/mixins/__init__.py +0 -0
  116. package/releng/meson/mesonbuild/compilers/mixins/arm.py +167 -0
  117. package/releng/meson/mesonbuild/compilers/mixins/ccrx.py +113 -0
  118. package/releng/meson/mesonbuild/compilers/mixins/clang.py +170 -0
  119. package/releng/meson/mesonbuild/compilers/mixins/clike.py +1330 -0
  120. package/releng/meson/mesonbuild/compilers/mixins/compcert.py +117 -0
  121. package/releng/meson/mesonbuild/compilers/mixins/elbrus.py +93 -0
  122. package/releng/meson/mesonbuild/compilers/mixins/emscripten.py +89 -0
  123. package/releng/meson/mesonbuild/compilers/mixins/gnu.py +629 -0
  124. package/releng/meson/mesonbuild/compilers/mixins/intel.py +167 -0
  125. package/releng/meson/mesonbuild/compilers/mixins/islinker.py +120 -0
  126. package/releng/meson/mesonbuild/compilers/mixins/metrowerks.py +279 -0
  127. package/releng/meson/mesonbuild/compilers/mixins/pgi.py +88 -0
  128. package/releng/meson/mesonbuild/compilers/mixins/ti.py +130 -0
  129. package/releng/meson/mesonbuild/compilers/mixins/visualstudio.py +458 -0
  130. package/releng/meson/mesonbuild/compilers/mixins/xc16.py +111 -0
  131. package/releng/meson/mesonbuild/compilers/objc.py +120 -0
  132. package/releng/meson/mesonbuild/compilers/objcpp.py +102 -0
  133. package/releng/meson/mesonbuild/compilers/rust.py +230 -0
  134. package/releng/meson/mesonbuild/compilers/swift.py +131 -0
  135. package/releng/meson/mesonbuild/compilers/vala.py +121 -0
  136. package/releng/meson/mesonbuild/coredata.py +1532 -0
  137. package/releng/meson/mesonbuild/dependencies/__init__.py +252 -0
  138. package/releng/meson/mesonbuild/dependencies/base.py +663 -0
  139. package/releng/meson/mesonbuild/dependencies/boost.py +1083 -0
  140. package/releng/meson/mesonbuild/dependencies/cmake.py +656 -0
  141. package/releng/meson/mesonbuild/dependencies/coarrays.py +80 -0
  142. package/releng/meson/mesonbuild/dependencies/configtool.py +163 -0
  143. package/releng/meson/mesonbuild/dependencies/cuda.py +295 -0
  144. package/releng/meson/mesonbuild/dependencies/data/CMakeLists.txt +102 -0
  145. package/releng/meson/mesonbuild/dependencies/data/CMakeListsLLVM.txt +204 -0
  146. package/releng/meson/mesonbuild/dependencies/data/CMakePathInfo.txt +31 -0
  147. package/releng/meson/mesonbuild/dependencies/data/__init__.py +0 -0
  148. package/releng/meson/mesonbuild/dependencies/detect.py +225 -0
  149. package/releng/meson/mesonbuild/dependencies/dev.py +707 -0
  150. package/releng/meson/mesonbuild/dependencies/dub.py +424 -0
  151. package/releng/meson/mesonbuild/dependencies/factory.py +146 -0
  152. package/releng/meson/mesonbuild/dependencies/framework.py +111 -0
  153. package/releng/meson/mesonbuild/dependencies/hdf5.py +168 -0
  154. package/releng/meson/mesonbuild/dependencies/misc.py +618 -0
  155. package/releng/meson/mesonbuild/dependencies/mpi.py +231 -0
  156. package/releng/meson/mesonbuild/dependencies/pkgconfig.py +570 -0
  157. package/releng/meson/mesonbuild/dependencies/platform.py +52 -0
  158. package/releng/meson/mesonbuild/dependencies/python.py +431 -0
  159. package/releng/meson/mesonbuild/dependencies/qt.py +484 -0
  160. package/releng/meson/mesonbuild/dependencies/scalapack.py +142 -0
  161. package/releng/meson/mesonbuild/dependencies/ui.py +281 -0
  162. package/releng/meson/mesonbuild/depfile.py +82 -0
  163. package/releng/meson/mesonbuild/envconfig.py +480 -0
  164. package/releng/meson/mesonbuild/environment.py +987 -0
  165. package/releng/meson/mesonbuild/interpreter/__init__.py +47 -0
  166. package/releng/meson/mesonbuild/interpreter/compiler.py +900 -0
  167. package/releng/meson/mesonbuild/interpreter/dependencyfallbacks.py +386 -0
  168. package/releng/meson/mesonbuild/interpreter/interpreter.py +3595 -0
  169. package/releng/meson/mesonbuild/interpreter/interpreterobjects.py +1096 -0
  170. package/releng/meson/mesonbuild/interpreter/kwargs.py +479 -0
  171. package/releng/meson/mesonbuild/interpreter/mesonmain.py +487 -0
  172. package/releng/meson/mesonbuild/interpreter/primitives/__init__.py +29 -0
  173. package/releng/meson/mesonbuild/interpreter/primitives/array.py +108 -0
  174. package/releng/meson/mesonbuild/interpreter/primitives/boolean.py +52 -0
  175. package/releng/meson/mesonbuild/interpreter/primitives/dict.py +88 -0
  176. package/releng/meson/mesonbuild/interpreter/primitives/integer.py +86 -0
  177. package/releng/meson/mesonbuild/interpreter/primitives/range.py +38 -0
  178. package/releng/meson/mesonbuild/interpreter/primitives/string.py +247 -0
  179. package/releng/meson/mesonbuild/interpreter/type_checking.py +853 -0
  180. package/releng/meson/mesonbuild/interpreterbase/__init__.py +126 -0
  181. package/releng/meson/mesonbuild/interpreterbase/_unholder.py +25 -0
  182. package/releng/meson/mesonbuild/interpreterbase/baseobjects.py +174 -0
  183. package/releng/meson/mesonbuild/interpreterbase/decorators.py +806 -0
  184. package/releng/meson/mesonbuild/interpreterbase/disabler.py +35 -0
  185. package/releng/meson/mesonbuild/interpreterbase/exceptions.py +22 -0
  186. package/releng/meson/mesonbuild/interpreterbase/helpers.py +67 -0
  187. package/releng/meson/mesonbuild/interpreterbase/interpreterbase.py +665 -0
  188. package/releng/meson/mesonbuild/interpreterbase/operator.py +32 -0
  189. package/releng/meson/mesonbuild/linkers/__init__.py +20 -0
  190. package/releng/meson/mesonbuild/linkers/base.py +39 -0
  191. package/releng/meson/mesonbuild/linkers/detect.py +229 -0
  192. package/releng/meson/mesonbuild/linkers/linkers.py +1614 -0
  193. package/releng/meson/mesonbuild/mcompile.py +380 -0
  194. package/releng/meson/mesonbuild/mconf.py +368 -0
  195. package/releng/meson/mesonbuild/mdevenv.py +234 -0
  196. package/releng/meson/mesonbuild/mdist.py +376 -0
  197. package/releng/meson/mesonbuild/mesondata.py +38 -0
  198. package/releng/meson/mesonbuild/mesonlib.py +23 -0
  199. package/releng/meson/mesonbuild/mesonmain.py +289 -0
  200. package/releng/meson/mesonbuild/minit.py +204 -0
  201. package/releng/meson/mesonbuild/minstall.py +864 -0
  202. package/releng/meson/mesonbuild/mintro.py +667 -0
  203. package/releng/meson/mesonbuild/mlog.py +542 -0
  204. package/releng/meson/mesonbuild/modules/__init__.py +270 -0
  205. package/releng/meson/mesonbuild/modules/cmake.py +442 -0
  206. package/releng/meson/mesonbuild/modules/cuda.py +377 -0
  207. package/releng/meson/mesonbuild/modules/dlang.py +117 -0
  208. package/releng/meson/mesonbuild/modules/external_project.py +306 -0
  209. package/releng/meson/mesonbuild/modules/fs.py +323 -0
  210. package/releng/meson/mesonbuild/modules/gnome.py +2215 -0
  211. package/releng/meson/mesonbuild/modules/hotdoc.py +487 -0
  212. package/releng/meson/mesonbuild/modules/i18n.py +405 -0
  213. package/releng/meson/mesonbuild/modules/icestorm.py +123 -0
  214. package/releng/meson/mesonbuild/modules/java.py +112 -0
  215. package/releng/meson/mesonbuild/modules/keyval.py +65 -0
  216. package/releng/meson/mesonbuild/modules/modtest.py +33 -0
  217. package/releng/meson/mesonbuild/modules/pkgconfig.py +744 -0
  218. package/releng/meson/mesonbuild/modules/python.py +556 -0
  219. package/releng/meson/mesonbuild/modules/python3.py +85 -0
  220. package/releng/meson/mesonbuild/modules/qt.py +621 -0
  221. package/releng/meson/mesonbuild/modules/qt4.py +23 -0
  222. package/releng/meson/mesonbuild/modules/qt5.py +23 -0
  223. package/releng/meson/mesonbuild/modules/qt6.py +22 -0
  224. package/releng/meson/mesonbuild/modules/rust.py +355 -0
  225. package/releng/meson/mesonbuild/modules/simd.py +114 -0
  226. package/releng/meson/mesonbuild/modules/sourceset.py +291 -0
  227. package/releng/meson/mesonbuild/modules/wayland.py +151 -0
  228. package/releng/meson/mesonbuild/modules/windows.py +207 -0
  229. package/releng/meson/mesonbuild/mparser.py +1114 -0
  230. package/releng/meson/mesonbuild/msetup.py +365 -0
  231. package/releng/meson/mesonbuild/msubprojects.py +764 -0
  232. package/releng/meson/mesonbuild/mtest.py +2201 -0
  233. package/releng/meson/mesonbuild/munstable_coredata.py +107 -0
  234. package/releng/meson/mesonbuild/optinterpreter.py +276 -0
  235. package/releng/meson/mesonbuild/programs.py +367 -0
  236. package/releng/meson/mesonbuild/rewriter.py +1075 -0
  237. package/releng/meson/mesonbuild/scripts/__init__.py +10 -0
  238. package/releng/meson/mesonbuild/scripts/clangformat.py +55 -0
  239. package/releng/meson/mesonbuild/scripts/clangtidy.py +30 -0
  240. package/releng/meson/mesonbuild/scripts/cleantrees.py +35 -0
  241. package/releng/meson/mesonbuild/scripts/cmake_run_ctgt.py +103 -0
  242. package/releng/meson/mesonbuild/scripts/cmd_or_ps.ps1 +17 -0
  243. package/releng/meson/mesonbuild/scripts/copy.py +19 -0
  244. package/releng/meson/mesonbuild/scripts/coverage.py +214 -0
  245. package/releng/meson/mesonbuild/scripts/delwithsuffix.py +27 -0
  246. package/releng/meson/mesonbuild/scripts/depfixer.py +495 -0
  247. package/releng/meson/mesonbuild/scripts/depscan.py +198 -0
  248. package/releng/meson/mesonbuild/scripts/dirchanger.py +20 -0
  249. package/releng/meson/mesonbuild/scripts/env2mfile.py +402 -0
  250. package/releng/meson/mesonbuild/scripts/externalproject.py +106 -0
  251. package/releng/meson/mesonbuild/scripts/gettext.py +86 -0
  252. package/releng/meson/mesonbuild/scripts/gtkdochelper.py +286 -0
  253. package/releng/meson/mesonbuild/scripts/hotdochelper.py +40 -0
  254. package/releng/meson/mesonbuild/scripts/itstool.py +77 -0
  255. package/releng/meson/mesonbuild/scripts/meson_exe.py +115 -0
  256. package/releng/meson/mesonbuild/scripts/msgfmthelper.py +29 -0
  257. package/releng/meson/mesonbuild/scripts/pycompile.py +54 -0
  258. package/releng/meson/mesonbuild/scripts/python_info.py +121 -0
  259. package/releng/meson/mesonbuild/scripts/regen_checker.py +55 -0
  260. package/releng/meson/mesonbuild/scripts/run_tool.py +58 -0
  261. package/releng/meson/mesonbuild/scripts/scanbuild.py +57 -0
  262. package/releng/meson/mesonbuild/scripts/symbolextractor.py +322 -0
  263. package/releng/meson/mesonbuild/scripts/tags.py +44 -0
  264. package/releng/meson/mesonbuild/scripts/test_loaded_modules.py +14 -0
  265. package/releng/meson/mesonbuild/scripts/uninstall.py +41 -0
  266. package/releng/meson/mesonbuild/scripts/vcstagger.py +35 -0
  267. package/releng/meson/mesonbuild/scripts/yasm.py +24 -0
  268. package/releng/meson/mesonbuild/templates/__init__.py +0 -0
  269. package/releng/meson/mesonbuild/templates/cpptemplates.py +143 -0
  270. package/releng/meson/mesonbuild/templates/cstemplates.py +90 -0
  271. package/releng/meson/mesonbuild/templates/ctemplates.py +126 -0
  272. package/releng/meson/mesonbuild/templates/cudatemplates.py +143 -0
  273. package/releng/meson/mesonbuild/templates/dlangtemplates.py +109 -0
  274. package/releng/meson/mesonbuild/templates/fortrantemplates.py +101 -0
  275. package/releng/meson/mesonbuild/templates/javatemplates.py +94 -0
  276. package/releng/meson/mesonbuild/templates/mesontemplates.py +70 -0
  277. package/releng/meson/mesonbuild/templates/objcpptemplates.py +126 -0
  278. package/releng/meson/mesonbuild/templates/objctemplates.py +126 -0
  279. package/releng/meson/mesonbuild/templates/rusttemplates.py +79 -0
  280. package/releng/meson/mesonbuild/templates/samplefactory.py +41 -0
  281. package/releng/meson/mesonbuild/templates/sampleimpl.py +160 -0
  282. package/releng/meson/mesonbuild/templates/valatemplates.py +82 -0
  283. package/releng/meson/mesonbuild/utils/__init__.py +0 -0
  284. package/releng/meson/mesonbuild/utils/core.py +166 -0
  285. package/releng/meson/mesonbuild/utils/platform.py +27 -0
  286. package/releng/meson/mesonbuild/utils/posix.py +32 -0
  287. package/releng/meson/mesonbuild/utils/universal.py +2445 -0
  288. package/releng/meson/mesonbuild/utils/vsenv.py +126 -0
  289. package/releng/meson/mesonbuild/utils/win32.py +29 -0
  290. package/releng/meson/mesonbuild/wrap/__init__.py +59 -0
  291. package/releng/meson/mesonbuild/wrap/wrap.py +846 -0
  292. package/releng/meson/mesonbuild/wrap/wraptool.py +198 -0
  293. package/releng/meson-scripts/BSDmakefile +6 -0
  294. package/releng/meson-scripts/Makefile +16 -0
  295. package/releng/meson-scripts/configure +18 -0
  296. package/releng/meson-scripts/configure.bat +22 -0
  297. package/releng/meson-scripts/make.bat +23 -0
  298. package/releng/meson_configure.py +506 -0
  299. package/releng/meson_make.py +131 -0
  300. package/releng/mkdevkit.py +107 -0
  301. package/releng/mkfatmacho.py +54 -0
  302. package/releng/post-process-oabi.py +97 -0
  303. package/releng/progress.py +14 -0
  304. package/releng/sync-from-upstream.py +185 -0
  305. package/releng/tomlkit/tomlkit/__init__.py +59 -0
  306. package/releng/tomlkit/tomlkit/_compat.py +22 -0
  307. package/releng/tomlkit/tomlkit/_types.py +83 -0
  308. package/releng/tomlkit/tomlkit/_utils.py +158 -0
  309. package/releng/tomlkit/tomlkit/api.py +308 -0
  310. package/releng/tomlkit/tomlkit/container.py +875 -0
  311. package/releng/tomlkit/tomlkit/exceptions.py +227 -0
  312. package/releng/tomlkit/tomlkit/items.py +1967 -0
  313. package/releng/tomlkit/tomlkit/parser.py +1141 -0
  314. package/releng/tomlkit/tomlkit/py.typed +0 -0
  315. package/releng/tomlkit/tomlkit/source.py +180 -0
  316. package/releng/tomlkit/tomlkit/toml_char.py +52 -0
  317. package/releng/tomlkit/tomlkit/toml_document.py +7 -0
  318. package/releng/tomlkit/tomlkit/toml_file.py +58 -0
  319. package/releng/winenv.py +140 -0
  320. package/scripts/adjust-version.py +19 -0
  321. package/scripts/detect-version.py +40 -0
  322. package/scripts/fetch-abi-bits.py +343 -0
  323. package/scripts/install.js +23 -0
  324. package/scripts/package.py +15 -0
  325. package/src/addon.cc +76 -0
  326. package/src/application.cc +148 -0
  327. package/src/application.h +31 -0
  328. package/src/authentication.cc +174 -0
  329. package/src/authentication.h +24 -0
  330. package/src/bus.cc +167 -0
  331. package/src/bus.h +33 -0
  332. package/src/cancellable.cc +117 -0
  333. package/src/cancellable.h +31 -0
  334. package/src/child.cc +150 -0
  335. package/src/child.h +32 -0
  336. package/src/crash.cc +122 -0
  337. package/src/crash.h +30 -0
  338. package/src/device.cc +1302 -0
  339. package/src/device.h +55 -0
  340. package/src/device_manager.cc +362 -0
  341. package/src/device_manager.h +35 -0
  342. package/src/endpoint_parameters.cc +171 -0
  343. package/src/endpoint_parameters.h +28 -0
  344. package/src/glib_context.cc +62 -0
  345. package/src/glib_context.h +29 -0
  346. package/src/glib_object.cc +25 -0
  347. package/src/glib_object.h +37 -0
  348. package/src/iostream.cc +247 -0
  349. package/src/iostream.h +30 -0
  350. package/src/meson.build +26 -0
  351. package/src/operation.h +94 -0
  352. package/src/portal_membership.cc +100 -0
  353. package/src/portal_membership.h +26 -0
  354. package/src/portal_service.cc +401 -0
  355. package/src/portal_service.h +40 -0
  356. package/src/process.cc +135 -0
  357. package/src/process.h +30 -0
  358. package/src/relay.cc +139 -0
  359. package/src/relay.h +31 -0
  360. package/src/runtime.cc +443 -0
  361. package/src/runtime.h +64 -0
  362. package/src/script.cc +301 -0
  363. package/src/script.h +36 -0
  364. package/src/session.cc +860 -0
  365. package/src/session.h +42 -0
  366. package/src/signals.cc +334 -0
  367. package/src/signals.h +47 -0
  368. package/src/spawn.cc +95 -0
  369. package/src/spawn.h +27 -0
  370. package/src/usage_monitor.h +117 -0
  371. package/src/uv_context.cc +118 -0
  372. package/src/uv_context.h +40 -0
  373. package/src/win_delay_load_hook.cc +63 -0
  374. package/subprojects/frida-core.wrap +8 -0
  375. package/subprojects/nan.wrap +9 -0
  376. package/subprojects/packagefiles/nan.patch +13 -0
  377. package/test/data/index.ts +13 -0
  378. package/test/data/unixvictim-linux-x86 +0 -0
  379. package/test/data/unixvictim-linux-x86_64 +0 -0
  380. package/test/data/unixvictim-macos +0 -0
  381. package/test/device.ts +27 -0
  382. package/test/device_manager.ts +16 -0
  383. package/test/labrat.ts +32 -0
  384. package/test/script.ts +176 -0
  385. package/test/session.ts +73 -0
  386. package/tsconfig.json +18 -0
@@ -0,0 +1,10 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2016 The Meson development team
3
+
4
+ from pathlib import PurePath
5
+
6
+ def destdir_join(d1: str, d2: str) -> str:
7
+ if not d1:
8
+ return d2
9
+ # c:\destdir + c:\prefix must produce c:\destdir\prefix
10
+ return str(PurePath(d1, *PurePath(d2).parts[1:]))
@@ -0,0 +1,55 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2018 The Meson development team
3
+
4
+ from __future__ import annotations
5
+
6
+ import argparse
7
+ import subprocess
8
+ from pathlib import Path
9
+
10
+ from .run_tool import run_tool
11
+ from ..environment import detect_clangformat
12
+ from ..mesonlib import version_compare
13
+ from ..programs import ExternalProgram
14
+ import typing as T
15
+
16
+ def run_clang_format(fname: Path, exelist: T.List[str], check: bool, cformat_ver: T.Optional[str]) -> subprocess.CompletedProcess:
17
+ clangformat_10 = False
18
+ if check and cformat_ver:
19
+ if version_compare(cformat_ver, '>=10'):
20
+ clangformat_10 = True
21
+ exelist = exelist + ['--dry-run', '--Werror']
22
+ else:
23
+ original = fname.read_bytes()
24
+ before = fname.stat().st_mtime
25
+ ret = subprocess.run(exelist + ['-style=file', '-i', str(fname)])
26
+ after = fname.stat().st_mtime
27
+ if before != after:
28
+ print('File reformatted: ', fname)
29
+ if check and not clangformat_10:
30
+ # Restore the original if only checking.
31
+ fname.write_bytes(original)
32
+ ret.returncode = 1
33
+ return ret
34
+
35
+ def run(args: T.List[str]) -> int:
36
+ parser = argparse.ArgumentParser()
37
+ parser.add_argument('--check', action='store_true')
38
+ parser.add_argument('sourcedir')
39
+ parser.add_argument('builddir')
40
+ options = parser.parse_args(args)
41
+
42
+ srcdir = Path(options.sourcedir)
43
+ builddir = Path(options.builddir)
44
+
45
+ exelist = detect_clangformat()
46
+ if not exelist:
47
+ print('Could not execute clang-format "%s"' % ' '.join(exelist))
48
+ return 1
49
+
50
+ if options.check:
51
+ cformat_ver = ExternalProgram('clang-format', exelist, silent=True).get_version()
52
+ else:
53
+ cformat_ver = None
54
+
55
+ return run_tool('clang-format', srcdir, builddir, run_clang_format, exelist, options.check, cformat_ver)
@@ -0,0 +1,30 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2019 The Meson development team
3
+
4
+ from __future__ import annotations
5
+
6
+ import argparse
7
+ import subprocess
8
+ from pathlib import Path
9
+
10
+ from .run_tool import run_tool
11
+ import typing as T
12
+
13
+ def run_clang_tidy(fname: Path, builddir: Path) -> subprocess.CompletedProcess:
14
+ return subprocess.run(['clang-tidy', '-p', str(builddir), str(fname)])
15
+
16
+ def run_clang_tidy_fix(fname: Path, builddir: Path) -> subprocess.CompletedProcess:
17
+ return subprocess.run(['run-clang-tidy', '-fix', '-format', '-quiet', '-p', str(builddir), str(fname)])
18
+
19
+ def run(args: T.List[str]) -> int:
20
+ parser = argparse.ArgumentParser()
21
+ parser.add_argument('--fix', action='store_true')
22
+ parser.add_argument('sourcedir')
23
+ parser.add_argument('builddir')
24
+ options = parser.parse_args(args)
25
+
26
+ srcdir = Path(options.sourcedir)
27
+ builddir = Path(options.builddir)
28
+
29
+ run_func = run_clang_tidy_fix if options.fix else run_clang_tidy
30
+ return run_tool('clang-tidy', srcdir, builddir, run_func, builddir)
@@ -0,0 +1,35 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2016 The Meson development team
3
+
4
+ from __future__ import annotations
5
+
6
+ import os
7
+ import sys
8
+ import shutil
9
+ import pickle
10
+ import typing as T
11
+
12
+ def rmtrees(build_dir: str, trees: T.List[str]) -> None:
13
+ for t in trees:
14
+ # Never delete trees outside of the builddir
15
+ if os.path.isabs(t):
16
+ print(f'Cannot delete dir with absolute path {t!r}')
17
+ continue
18
+ bt = os.path.join(build_dir, t)
19
+ # Skip if it doesn't exist, or if it is not a directory
20
+ if os.path.isdir(bt):
21
+ shutil.rmtree(bt, ignore_errors=True)
22
+
23
+ def run(args: T.List[str]) -> int:
24
+ if len(args) != 1:
25
+ print('Cleaner script for Meson. Do not run on your own please.')
26
+ print('cleantrees.py <data-file>')
27
+ return 1
28
+ with open(args[0], 'rb') as f:
29
+ data = pickle.load(f)
30
+ rmtrees(data.build_dir, data.trees)
31
+ # Never fail cleaning
32
+ return 0
33
+
34
+ if __name__ == '__main__':
35
+ run(sys.argv[1:])
@@ -0,0 +1,103 @@
1
+ #!/usr/bin/env python3
2
+ from __future__ import annotations
3
+
4
+ import argparse
5
+ import subprocess
6
+ import shutil
7
+ import sys
8
+ from pathlib import Path
9
+ import typing as T
10
+
11
+ def run(argsv: T.List[str]) -> int:
12
+ commands: T.List[T.List[str]] = [[]]
13
+ SEPARATOR = ';;;'
14
+
15
+ # Generate CMD parameters
16
+ parser = argparse.ArgumentParser(description='Wrapper for add_custom_command')
17
+ parser.add_argument('-d', '--directory', type=str, metavar='D', required=True, help='Working directory to cwd to')
18
+ parser.add_argument('-o', '--outputs', nargs='+', metavar='O', required=True, help='Expected output files')
19
+ parser.add_argument('-O', '--original-outputs', nargs='*', metavar='O', default=[], help='Output files expected by CMake')
20
+ parser.add_argument('commands', nargs=argparse.REMAINDER, help=f'A "{SEPARATOR}" separated list of commands')
21
+
22
+ # Parse
23
+ args = parser.parse_args(argsv)
24
+ directory = Path(args.directory)
25
+
26
+ dummy_target = None
27
+ if len(args.outputs) == 1 and len(args.original_outputs) == 0:
28
+ dummy_target = Path(args.outputs[0])
29
+ elif len(args.outputs) != len(args.original_outputs):
30
+ print('Length of output list and original output list differ')
31
+ return 1
32
+
33
+ for i in args.commands:
34
+ if i == SEPARATOR:
35
+ commands += [[]]
36
+ continue
37
+
38
+ i = i.replace('"', '') # Remove leftover quotes
39
+ commands[-1] += [i]
40
+
41
+ # Execute
42
+ for i in commands:
43
+ # Skip empty lists
44
+ if not i:
45
+ continue
46
+
47
+ cmd = []
48
+ stdout = None
49
+ stderr = None
50
+ capture_file = ''
51
+
52
+ for j in i:
53
+ if j in {'>', '>>'}:
54
+ stdout = subprocess.PIPE
55
+ continue
56
+ elif j in {'&>', '&>>'}:
57
+ stdout = subprocess.PIPE
58
+ stderr = subprocess.STDOUT
59
+ continue
60
+
61
+ if stdout is not None or stderr is not None:
62
+ capture_file += j
63
+ else:
64
+ cmd += [j]
65
+
66
+ try:
67
+ directory.mkdir(parents=True, exist_ok=True)
68
+
69
+ res = subprocess.run(cmd, stdout=stdout, stderr=stderr, cwd=str(directory), check=True)
70
+ if capture_file:
71
+ out_file = directory / capture_file
72
+ out_file.write_bytes(res.stdout)
73
+ except subprocess.CalledProcessError:
74
+ return 1
75
+
76
+ if dummy_target:
77
+ dummy_target.touch()
78
+ return 0
79
+
80
+ # Copy outputs
81
+ zipped_outputs = zip([Path(x) for x in args.outputs], [Path(x) for x in args.original_outputs])
82
+ for expected, generated in zipped_outputs:
83
+ do_copy = False
84
+ if not expected.exists():
85
+ if not generated.exists():
86
+ print('Unable to find generated file. This can cause the build to fail:')
87
+ print(generated)
88
+ do_copy = False
89
+ else:
90
+ do_copy = True
91
+ elif generated.exists():
92
+ if generated.stat().st_mtime > expected.stat().st_mtime:
93
+ do_copy = True
94
+
95
+ if do_copy:
96
+ if expected.exists():
97
+ expected.unlink()
98
+ shutil.copyfile(str(generated), str(expected))
99
+
100
+ return 0
101
+
102
+ if __name__ == '__main__':
103
+ sys.exit(run(sys.argv[1:]))
@@ -0,0 +1,17 @@
1
+ # Copied from GStreamer project
2
+ # Author: Seungha Yang <seungha.yang@navercorp.com>
3
+ # Xavier Claessens <xclaesse@gmail.com>
4
+
5
+ $i=1
6
+ $ppid=$PID
7
+ do {
8
+ $ppid=(Get-CimInstance Win32_Process -Filter "ProcessId=$ppid").parentprocessid
9
+ $pname=(Get-Process -id $ppid).Name
10
+ if($pname -eq "cmd" -Or $pname -eq "powershell" -Or $pname -eq "pwsh") {
11
+ Write-Host ("{0}.exe" -f $pname)
12
+ Break
13
+ }
14
+ # not found yet, find grand parent
15
+ # 10 times iteration seems to be sufficient
16
+ $i++
17
+ } while ($i -lt 10)
@@ -0,0 +1,19 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright © 2021-2023 Intel Corporation
3
+ from __future__ import annotations
4
+
5
+ """Helper script to copy files at build time.
6
+
7
+ This is easier than trying to detect whether to use copy, cp, or something else.
8
+ """
9
+
10
+ import shutil
11
+ import typing as T
12
+
13
+
14
+ def run(args: T.List[str]) -> int:
15
+ try:
16
+ shutil.copy2(args[0], args[1])
17
+ except Exception:
18
+ return 1
19
+ return 0
@@ -0,0 +1,214 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2017 The Meson development team
3
+
4
+ from __future__ import annotations
5
+
6
+ from mesonbuild import environment, mesonlib
7
+
8
+ import argparse, re, sys, os, subprocess, pathlib, stat
9
+ import typing as T
10
+
11
+ def coverage(outputs: T.List[str], source_root: str, subproject_root: str, build_root: str, log_dir: str, use_llvm_cov: bool,
12
+ gcovr_exe: str, llvm_cov_exe: str) -> int:
13
+ outfiles = []
14
+ exitcode = 0
15
+
16
+ if gcovr_exe == '':
17
+ gcovr_exe = None
18
+ else:
19
+ gcovr_exe, gcovr_version = environment.detect_gcovr(gcovr_exe)
20
+ if llvm_cov_exe == '' or not mesonlib.exe_exists([llvm_cov_exe, '--version']):
21
+ llvm_cov_exe = None
22
+
23
+ lcov_exe, lcov_version, genhtml_exe = environment.detect_lcov_genhtml()
24
+
25
+ # load config files for tools if available in the source tree
26
+ # - lcov requires manually specifying a per-project config
27
+ # - gcovr picks up the per-project config, and also supports filtering files
28
+ # so don't exclude subprojects ourselves, if the project has a config,
29
+ # because they either don't want that, or should set it themselves
30
+ lcovrc = os.path.join(source_root, '.lcovrc')
31
+ if os.path.exists(lcovrc):
32
+ lcov_config = ['--config-file', lcovrc]
33
+ else:
34
+ lcov_config = []
35
+
36
+ if lcov_exe and mesonlib.version_compare(lcov_version, '>=2.0'):
37
+ lcov_exe_rc_branch_coverage = ['--rc', 'branch_coverage=1']
38
+ else:
39
+ lcov_exe_rc_branch_coverage = ['--rc', 'lcov_branch_coverage=1']
40
+
41
+ gcovr_config = ['-e', re.escape(subproject_root)]
42
+
43
+ # gcovr >= 4.2 requires a different syntax for out of source builds
44
+ if gcovr_exe and mesonlib.version_compare(gcovr_version, '>=4.2'):
45
+ gcovr_base_cmd = [gcovr_exe, '-r', source_root, build_root]
46
+ # it also started supporting the config file
47
+ if os.path.exists(os.path.join(source_root, 'gcovr.cfg')):
48
+ gcovr_config = []
49
+ else:
50
+ gcovr_base_cmd = [gcovr_exe, '-r', build_root]
51
+
52
+ if use_llvm_cov:
53
+ gcov_exe_args = ['--gcov-executable', llvm_cov_exe + ' gcov']
54
+ else:
55
+ gcov_exe_args = []
56
+
57
+ if not outputs or 'xml' in outputs:
58
+ if gcovr_exe and mesonlib.version_compare(gcovr_version, '>=3.3'):
59
+ subprocess.check_call(gcovr_base_cmd + gcovr_config +
60
+ ['-x',
61
+ '-o', os.path.join(log_dir, 'coverage.xml')
62
+ ] + gcov_exe_args)
63
+ outfiles.append(('Xml', pathlib.Path(log_dir, 'coverage.xml')))
64
+ elif outputs:
65
+ print('gcovr >= 3.3 needed to generate Xml coverage report')
66
+ exitcode = 1
67
+
68
+ if not outputs or 'sonarqube' in outputs:
69
+ if gcovr_exe and mesonlib.version_compare(gcovr_version, '>=4.2'):
70
+ subprocess.check_call(gcovr_base_cmd + gcovr_config +
71
+ ['--sonarqube',
72
+ '-o', os.path.join(log_dir, 'sonarqube.xml'),
73
+ ] + gcov_exe_args)
74
+ outfiles.append(('Sonarqube', pathlib.Path(log_dir, 'sonarqube.xml')))
75
+ elif outputs:
76
+ print('gcovr >= 4.2 needed to generate Xml coverage report')
77
+ exitcode = 1
78
+
79
+ if not outputs or 'text' in outputs:
80
+ if gcovr_exe and mesonlib.version_compare(gcovr_version, '>=3.3'):
81
+ subprocess.check_call(gcovr_base_cmd + gcovr_config +
82
+ ['-o', os.path.join(log_dir, 'coverage.txt')] +
83
+ gcov_exe_args)
84
+ outfiles.append(('Text', pathlib.Path(log_dir, 'coverage.txt')))
85
+ elif outputs:
86
+ print('gcovr >= 3.3 needed to generate text coverage report')
87
+ exitcode = 1
88
+
89
+ if not outputs or 'html' in outputs:
90
+ if lcov_exe and genhtml_exe:
91
+ htmloutdir = os.path.join(log_dir, 'coveragereport')
92
+ covinfo = os.path.join(log_dir, 'coverage.info')
93
+ initial_tracefile = covinfo + '.initial'
94
+ run_tracefile = covinfo + '.run'
95
+ raw_tracefile = covinfo + '.raw'
96
+ lcov_subpoject_exclude = []
97
+ if os.path.exists(subproject_root):
98
+ lcov_subpoject_exclude.append(os.path.join(subproject_root, '*'))
99
+ if use_llvm_cov:
100
+ # Create a shim to allow using llvm-cov as a gcov tool.
101
+ if mesonlib.is_windows():
102
+ llvm_cov_shim_path = os.path.join(log_dir, 'llvm-cov.bat')
103
+ with open(llvm_cov_shim_path, 'w', encoding='utf-8') as llvm_cov_bat:
104
+ llvm_cov_bat.write(f'@"{llvm_cov_exe}" gcov %*')
105
+ else:
106
+ llvm_cov_shim_path = os.path.join(log_dir, 'llvm-cov.sh')
107
+ with open(llvm_cov_shim_path, 'w', encoding='utf-8') as llvm_cov_sh:
108
+ llvm_cov_sh.write(f'#!/usr/bin/env sh\nexec "{llvm_cov_exe}" gcov $@')
109
+ os.chmod(llvm_cov_shim_path, os.stat(llvm_cov_shim_path).st_mode | stat.S_IEXEC)
110
+ gcov_tool_args = ['--gcov-tool', llvm_cov_shim_path]
111
+ else:
112
+ gcov_tool_args = []
113
+ subprocess.check_call([lcov_exe,
114
+ '--directory', build_root,
115
+ '--capture',
116
+ '--initial',
117
+ '--output-file',
118
+ initial_tracefile] +
119
+ lcov_config +
120
+ gcov_tool_args)
121
+ subprocess.check_call([lcov_exe,
122
+ '--directory', build_root,
123
+ '--capture',
124
+ '--output-file', run_tracefile,
125
+ '--no-checksum',
126
+ *lcov_exe_rc_branch_coverage] +
127
+ lcov_config +
128
+ gcov_tool_args)
129
+ # Join initial and test results.
130
+ subprocess.check_call([lcov_exe,
131
+ '-a', initial_tracefile,
132
+ '-a', run_tracefile,
133
+ *lcov_exe_rc_branch_coverage,
134
+ '-o', raw_tracefile] + lcov_config)
135
+ # Remove all directories outside the source_root from the covinfo
136
+ subprocess.check_call([lcov_exe,
137
+ '--extract', raw_tracefile,
138
+ os.path.join(source_root, '*'),
139
+ *lcov_exe_rc_branch_coverage,
140
+ '--output-file', covinfo] + lcov_config)
141
+ # Remove all directories inside subproject dir
142
+ subprocess.check_call([lcov_exe,
143
+ '--remove', covinfo,
144
+ *lcov_subpoject_exclude,
145
+ *lcov_exe_rc_branch_coverage,
146
+ '--ignore-errors', 'unused',
147
+ '--output-file', covinfo] + lcov_config)
148
+ subprocess.check_call([genhtml_exe,
149
+ '--prefix', build_root,
150
+ '--prefix', source_root,
151
+ '--output-directory', htmloutdir,
152
+ '--title', 'Code coverage',
153
+ '--legend',
154
+ '--show-details',
155
+ '--branch-coverage',
156
+ covinfo] + lcov_config)
157
+ outfiles.append(('Html', pathlib.Path(htmloutdir, 'index.html')))
158
+ elif gcovr_exe and mesonlib.version_compare(gcovr_version, '>=3.3'):
159
+ htmloutdir = os.path.join(log_dir, 'coveragereport')
160
+ if not os.path.isdir(htmloutdir):
161
+ os.mkdir(htmloutdir)
162
+ subprocess.check_call(gcovr_base_cmd + gcovr_config +
163
+ ['--html',
164
+ '--html-details',
165
+ '--print-summary',
166
+ '-o', os.path.join(htmloutdir, 'index.html'),
167
+ ] + gcov_exe_args)
168
+ outfiles.append(('Html', pathlib.Path(htmloutdir, 'index.html')))
169
+ elif outputs:
170
+ print('lcov/genhtml or gcovr >= 3.3 needed to generate Html coverage report')
171
+ exitcode = 1
172
+
173
+ if not outputs and not outfiles:
174
+ print('Need gcovr or lcov/genhtml to generate any coverage reports')
175
+ exitcode = 1
176
+
177
+ if outfiles:
178
+ print('')
179
+ for (filetype, path) in outfiles:
180
+ print(filetype + ' coverage report can be found at', path.as_uri())
181
+
182
+ return exitcode
183
+
184
+ def run(args: T.List[str]) -> int:
185
+ if not os.path.isfile('build.ninja'):
186
+ print('Coverage currently only works with the Ninja backend.')
187
+ return 1
188
+ parser = argparse.ArgumentParser(description='Generate coverage reports')
189
+ parser.add_argument('--text', dest='outputs', action='append_const',
190
+ const='text', help='generate Text report')
191
+ parser.add_argument('--xml', dest='outputs', action='append_const',
192
+ const='xml', help='generate Xml report')
193
+ parser.add_argument('--sonarqube', dest='outputs', action='append_const',
194
+ const='sonarqube', help='generate Sonarqube Xml report')
195
+ parser.add_argument('--html', dest='outputs', action='append_const',
196
+ const='html', help='generate Html report')
197
+ parser.add_argument('--use-llvm-cov', action='store_true',
198
+ help='use llvm-cov')
199
+ parser.add_argument('--gcovr', action='store', default='',
200
+ help='The gcovr executable to use if specified')
201
+ parser.add_argument('--llvm-cov', action='store', default='',
202
+ help='The llvm-cov executable to use if specified')
203
+ parser.add_argument('source_root')
204
+ parser.add_argument('subproject_root')
205
+ parser.add_argument('build_root')
206
+ parser.add_argument('log_dir')
207
+ options = parser.parse_args(args)
208
+ return coverage(options.outputs, options.source_root,
209
+ options.subproject_root, options.build_root,
210
+ options.log_dir, options.use_llvm_cov,
211
+ options.gcovr, options.llvm_cov)
212
+
213
+ if __name__ == '__main__':
214
+ sys.exit(run(sys.argv[1:]))
@@ -0,0 +1,27 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2013 The Meson development team
3
+
4
+ from __future__ import annotations
5
+
6
+ import os, sys
7
+ import typing as T
8
+
9
+ def run(args: T.List[str]) -> int:
10
+ if len(args) != 2:
11
+ print('delwithsuffix.py <root of subdir to process> <suffix to delete>')
12
+ sys.exit(1)
13
+
14
+ topdir = args[0]
15
+ suffix = args[1]
16
+ if suffix[0] != '.':
17
+ suffix = '.' + suffix
18
+
19
+ for (root, _, files) in os.walk(topdir):
20
+ for f in files:
21
+ if f.endswith(suffix):
22
+ fullname = os.path.join(root, f)
23
+ os.unlink(fullname)
24
+ return 0
25
+
26
+ if __name__ == '__main__':
27
+ run(sys.argv[1:])