frida 16.2.1 → 16.2.2

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,32 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+
3
+ from enum import Enum
4
+
5
+ class MesonOperator(Enum):
6
+ # Arithmetic
7
+ PLUS = '+'
8
+ MINUS = '-'
9
+ TIMES = '*'
10
+ DIV = '/'
11
+ MOD = '%'
12
+
13
+ UMINUS = 'uminus'
14
+
15
+ # Logic
16
+ NOT = 'not'
17
+
18
+ # Should return the boolsche interpretation of the value (`'' == false` for instance)
19
+ BOOL = 'bool()'
20
+
21
+ # Comparison
22
+ EQUALS = '=='
23
+ NOT_EQUALS = '!='
24
+ GREATER = '>'
25
+ LESS = '<'
26
+ GREATER_EQUALS = '>='
27
+ LESS_EQUALS = '<='
28
+
29
+ # Container
30
+ IN = 'in'
31
+ NOT_IN = 'not in'
32
+ INDEX = '[]'
@@ -0,0 +1,20 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2012-2021 The Meson development team
3
+
4
+ from .base import ArLikeLinker, RSPFileSyntax
5
+ from .detect import (
6
+ defaults,
7
+ guess_win_linker,
8
+ guess_nix_linker,
9
+ )
10
+
11
+ __all__ = [
12
+ # base.py
13
+ 'ArLikeLinker',
14
+ 'RSPFileSyntax',
15
+
16
+ # detect.py
17
+ 'defaults',
18
+ 'guess_win_linker',
19
+ 'guess_nix_linker',
20
+ ]
@@ -0,0 +1,39 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2012-2023 The Meson development team
3
+
4
+ # Core public classes for linkers.
5
+ from __future__ import annotations
6
+
7
+ import enum
8
+ import typing as T
9
+
10
+ if T.TYPE_CHECKING:
11
+ from ..environment import Environment
12
+
13
+
14
+ @enum.unique
15
+ class RSPFileSyntax(enum.Enum):
16
+
17
+ """Which RSP file syntax the compiler supports."""
18
+
19
+ MSVC = enum.auto()
20
+ GCC = enum.auto()
21
+
22
+
23
+ class ArLikeLinker:
24
+ # POSIX requires supporting the dash, GNU permits omitting it
25
+ std_args = ['-csr']
26
+
27
+ def can_linker_accept_rsp(self) -> bool:
28
+ # armar / AIX can't accept arguments using the @rsp syntax
29
+ # in fact, only the 'ar' id can
30
+ return False
31
+
32
+ def get_std_link_args(self, env: 'Environment', is_thin: bool) -> T.List[str]:
33
+ return self.std_args
34
+
35
+ def get_output_args(self, target: str) -> T.List[str]:
36
+ return [target]
37
+
38
+ def rsp_file_syntax(self) -> RSPFileSyntax:
39
+ return RSPFileSyntax.GCC
@@ -0,0 +1,229 @@
1
+ # SPDX-License-Identifier: Apache-2.0
2
+ # Copyright 2012-2022 The Meson development team
3
+
4
+ from __future__ import annotations
5
+
6
+ from .. import mlog
7
+ from ..mesonlib import (
8
+ EnvironmentException,
9
+ Popen_safe, Popen_safe_logged, join_args, search_version
10
+ )
11
+
12
+ import re
13
+ import shlex
14
+ import typing as T
15
+
16
+ if T.TYPE_CHECKING:
17
+ from .linkers import DynamicLinker, GnuDynamicLinker
18
+ from ..environment import Environment
19
+ from ..compilers import Compiler
20
+ from ..mesonlib import MachineChoice
21
+
22
+ defaults: T.Dict[str, T.List[str]] = {}
23
+ defaults['static_linker'] = ['ar', 'gar']
24
+ defaults['vs_static_linker'] = ['lib']
25
+ defaults['clang_cl_static_linker'] = ['llvm-lib']
26
+ defaults['cuda_static_linker'] = ['nvlink']
27
+ defaults['gcc_static_linker'] = ['gcc-ar']
28
+ defaults['clang_static_linker'] = ['llvm-ar']
29
+
30
+ def __failed_to_detect_linker(compiler: T.List[str], args: T.List[str], stdout: str, stderr: str) -> 'T.NoReturn':
31
+ msg = 'Unable to detect linker for compiler `{}`\nstdout: {}\nstderr: {}'.format(
32
+ join_args(compiler + args), stdout, stderr)
33
+ raise EnvironmentException(msg)
34
+
35
+
36
+ def guess_win_linker(env: 'Environment', compiler: T.List[str], comp_class: T.Type['Compiler'],
37
+ comp_version: str, for_machine: MachineChoice, *,
38
+ use_linker_prefix: bool = True, invoked_directly: bool = True,
39
+ extra_args: T.Optional[T.List[str]] = None) -> 'DynamicLinker':
40
+ from . import linkers
41
+ env.coredata.add_lang_args(comp_class.language, comp_class, for_machine, env)
42
+
43
+ # Explicitly pass logo here so that we can get the version of link.exe
44
+ if not use_linker_prefix or comp_class.LINKER_PREFIX is None:
45
+ check_args = ['/logo', '--version']
46
+ elif isinstance(comp_class.LINKER_PREFIX, str):
47
+ check_args = [comp_class.LINKER_PREFIX + '/logo', comp_class.LINKER_PREFIX + '--version']
48
+ elif isinstance(comp_class.LINKER_PREFIX, list):
49
+ check_args = comp_class.LINKER_PREFIX + ['/logo'] + comp_class.LINKER_PREFIX + ['--version']
50
+
51
+ check_args += env.coredata.get_external_link_args(for_machine, comp_class.language)
52
+
53
+ override: T.List[str] = []
54
+ value = env.lookup_binary_entry(for_machine, comp_class.language + '_ld')
55
+ if value is not None:
56
+ override = comp_class.use_linker_args(value[0], comp_version)
57
+ check_args += override
58
+
59
+ if extra_args is not None:
60
+ check_args.extend(extra_args)
61
+
62
+ p, o, _ = Popen_safe(compiler + check_args)
63
+ if 'LLD' in o.split('\n', maxsplit=1)[0]:
64
+ if '(compatible with GNU linkers)' in o:
65
+ return linkers.LLVMDynamicLinker(
66
+ compiler, for_machine, comp_class.LINKER_PREFIX,
67
+ override, version=search_version(o))
68
+ elif not invoked_directly:
69
+ return linkers.ClangClDynamicLinker(
70
+ for_machine, override, exelist=compiler, prefix=comp_class.LINKER_PREFIX,
71
+ version=search_version(o), direct=False, machine=None)
72
+
73
+ if value is not None and invoked_directly:
74
+ compiler = value
75
+ # We've already handled the non-direct case above
76
+
77
+ p, o, e = Popen_safe(compiler + check_args)
78
+ if 'LLD' in o.split('\n', maxsplit=1)[0]:
79
+ return linkers.ClangClDynamicLinker(
80
+ for_machine, [],
81
+ prefix=comp_class.LINKER_PREFIX if use_linker_prefix else [],
82
+ exelist=compiler, version=search_version(o), direct=invoked_directly)
83
+ elif 'OPTLINK' in o:
84
+ # Optlink's stdout *may* begin with a \r character.
85
+ return linkers.OptlinkDynamicLinker(compiler, for_machine, version=search_version(o))
86
+ elif o.startswith('Microsoft') or e.startswith('Microsoft'):
87
+ out = o or e
88
+ match = re.search(r'.*(X86|X64|ARM|ARM64).*', out)
89
+ if match:
90
+ target = str(match.group(1))
91
+ else:
92
+ target = 'x86'
93
+
94
+ return linkers.MSVCDynamicLinker(
95
+ for_machine, [], machine=target, exelist=compiler,
96
+ prefix=comp_class.LINKER_PREFIX if use_linker_prefix else [],
97
+ version=search_version(out), direct=invoked_directly)
98
+ elif 'GNU coreutils' in o:
99
+ import shutil
100
+ fullpath = shutil.which(compiler[0])
101
+ raise EnvironmentException(
102
+ f"Found GNU link.exe instead of MSVC link.exe in {fullpath}.\n"
103
+ "This link.exe is not a linker.\n"
104
+ "You may need to reorder entries to your %PATH% variable to resolve this.")
105
+ __failed_to_detect_linker(compiler, check_args, o, e)
106
+
107
+ def guess_nix_linker(env: 'Environment', compiler: T.List[str], comp_class: T.Type['Compiler'],
108
+ comp_version: str, for_machine: MachineChoice, *,
109
+ extra_args: T.Optional[T.List[str]] = None) -> 'DynamicLinker':
110
+ """Helper for guessing what linker to use on Unix-Like OSes.
111
+
112
+ :compiler: Invocation to use to get linker
113
+ :comp_class: The Compiler Type (uninstantiated)
114
+ :comp_version: The compiler version string
115
+ :for_machine: which machine this linker targets
116
+ :extra_args: Any additional arguments required (such as a source file)
117
+ """
118
+ from . import linkers
119
+ env.coredata.add_lang_args(comp_class.language, comp_class, for_machine, env)
120
+ extra_args = extra_args or []
121
+
122
+ ldflags = env.coredata.get_external_link_args(for_machine, comp_class.language)
123
+ extra_args += comp_class._unix_args_to_native(ldflags, env.machines[for_machine])
124
+
125
+ if isinstance(comp_class.LINKER_PREFIX, str):
126
+ check_args = [comp_class.LINKER_PREFIX + '--version'] + extra_args
127
+ else:
128
+ check_args = comp_class.LINKER_PREFIX + ['--version'] + extra_args
129
+
130
+ override: T.List[str] = []
131
+ value = env.lookup_binary_entry(for_machine, comp_class.language + '_ld')
132
+ if value is not None:
133
+ override = comp_class.use_linker_args(value[0], comp_version)
134
+ check_args += override
135
+
136
+ mlog.debug('-----')
137
+ p, o, e = Popen_safe_logged(compiler + check_args, msg='Detecting linker via')
138
+
139
+ v = search_version(o + e)
140
+ linker: DynamicLinker
141
+ if 'LLD' in o.split('\n', maxsplit=1)[0]:
142
+ if isinstance(comp_class.LINKER_PREFIX, str):
143
+ cmd = compiler + override + [comp_class.LINKER_PREFIX + '-v'] + extra_args
144
+ else:
145
+ cmd = compiler + override + comp_class.LINKER_PREFIX + ['-v'] + extra_args
146
+ _, newo, newerr = Popen_safe_logged(cmd, msg='Detecting LLD linker via')
147
+
148
+ lld_cls: T.Type[DynamicLinker]
149
+ if 'ld64.lld' in newerr:
150
+ lld_cls = linkers.LLVMLD64DynamicLinker
151
+ else:
152
+ lld_cls = linkers.LLVMDynamicLinker
153
+
154
+ linker = lld_cls(
155
+ compiler, for_machine, comp_class.LINKER_PREFIX, override, version=v)
156
+ elif 'Snapdragon' in e and 'LLVM' in e:
157
+ linker = linkers.QualcommLLVMDynamicLinker(
158
+ compiler, for_machine, comp_class.LINKER_PREFIX, override, version=v)
159
+ elif e.startswith('lld-link: '):
160
+ # The LLD MinGW frontend didn't respond to --version before version 9.0.0,
161
+ # and produced an error message about failing to link (when no object
162
+ # files were specified), instead of printing the version number.
163
+ # Let's try to extract the linker invocation command to grab the version.
164
+
165
+ _, o, e = Popen_safe(compiler + check_args + ['-v'])
166
+
167
+ try:
168
+ linker_cmd = re.match(r'.*\n(.*?)\nlld-link: ', e, re.DOTALL).group(1)
169
+ linker_cmd = shlex.split(linker_cmd)[0]
170
+ except (AttributeError, IndexError, ValueError):
171
+ pass
172
+ else:
173
+ _, o, e = Popen_safe([linker_cmd, '--version'])
174
+ v = search_version(o)
175
+
176
+ linker = linkers.LLVMDynamicLinker(compiler, for_machine, comp_class.LINKER_PREFIX, override, version=v)
177
+ # detect xtools first, bug #10805
178
+ elif 'xtools-' in o.split('\n', maxsplit=1)[0]:
179
+ xtools = o.split(' ', maxsplit=1)[0]
180
+ v = xtools.split('-', maxsplit=2)[1]
181
+ linker = linkers.AppleDynamicLinker(compiler, for_machine, comp_class.LINKER_PREFIX, override, version=v)
182
+ # First might be apple clang, second is for real gcc, the third is icc.
183
+ # Note that "ld: unknown option: " sometimes instead is "ld: unknown options:".
184
+ elif e.endswith('(use -v to see invocation)\n') or 'macosx_version' in e or 'ld: unknown option' in e:
185
+ if isinstance(comp_class.LINKER_PREFIX, str):
186
+ cmd = compiler + [comp_class.LINKER_PREFIX + '-v'] + extra_args
187
+ else:
188
+ cmd = compiler + comp_class.LINKER_PREFIX + ['-v'] + extra_args
189
+ _, newo, newerr = Popen_safe_logged(cmd, msg='Detecting Apple linker via')
190
+
191
+ for line in newerr.split('\n'):
192
+ if 'PROJECT:ld' in line or 'PROJECT:dyld' in line:
193
+ v = line.split('-')[1]
194
+ break
195
+ else:
196
+ __failed_to_detect_linker(compiler, check_args, o, e)
197
+ linker = linkers.AppleDynamicLinker(compiler, for_machine, comp_class.LINKER_PREFIX, override, version=v)
198
+ elif 'GNU' in o or 'GNU' in e:
199
+ gnu_cls: T.Type[GnuDynamicLinker]
200
+ # this is always the only thing on stdout, except for swift
201
+ # which may or may not redirect the linker stdout to stderr
202
+ if o.startswith('GNU gold') or e.startswith('GNU gold'):
203
+ gnu_cls = linkers.GnuGoldDynamicLinker
204
+ elif o.startswith('mold') or e.startswith('mold'):
205
+ gnu_cls = linkers.MoldDynamicLinker
206
+ else:
207
+ gnu_cls = linkers.GnuBFDDynamicLinker
208
+ linker = gnu_cls(compiler, for_machine, comp_class.LINKER_PREFIX, override, version=v)
209
+ elif 'Solaris' in e or 'Solaris' in o:
210
+ for line in (o+e).split('\n'):
211
+ if 'ld: Software Generation Utilities' in line:
212
+ v = line.split(':')[2].lstrip()
213
+ break
214
+ else:
215
+ v = 'unknown version'
216
+ linker = linkers.SolarisDynamicLinker(
217
+ compiler, for_machine, comp_class.LINKER_PREFIX, override,
218
+ version=v)
219
+ elif 'ld: 0706-012 The -- flag is not recognized' in e:
220
+ if isinstance(comp_class.LINKER_PREFIX, str):
221
+ _, _, e = Popen_safe(compiler + [comp_class.LINKER_PREFIX + '-V'] + extra_args)
222
+ else:
223
+ _, _, e = Popen_safe(compiler + comp_class.LINKER_PREFIX + ['-V'] + extra_args)
224
+ linker = linkers.AIXDynamicLinker(
225
+ compiler, for_machine, comp_class.LINKER_PREFIX, override,
226
+ version=search_version(e))
227
+ else:
228
+ __failed_to_detect_linker(compiler, check_args, o, e)
229
+ return linker