精华内容
下载资源
问答
  • 底层代码
    千次阅读
    2022-03-22 14:09:23

    缘起:

    在调试用hugging face transformers代码时,不能step into进bartmodel代码,直接路过而不能step into, 查找半天,结果如下:

    让 VSCode Step Into 至底层代码

    底层代码,在官方文档里称为standard library functions。[1]我们又可以称之为Python的内置函数或者其它包中的函数。比如transformers 的库等。

    要让VSCode在调试中跳转至底层代码,只需要在launch.json中设置一个参数即可。

    使用Ctrl + Shirt + P打开Command Palette,搜索launch。

    打开launch对应的launch.json,然后在下面加入这一行并保存。[2]

    "justMyCode": false

    如果工程中已经有launch.json 文件,默认上面的值 是true,改为false即可。 

    更多相关内容
  • DS18b20底层代码.zip

    2021-07-22 11:25:29
    DS18b20底层代码
  • 本文档是关于基本图像处理的底层代码总结,希望对大家有用
  • 基于Simulink实现上层逻辑与底层代码的集成方法,并在底层开发环境中建立变量对应的C代码,无需在后续开发中修改Matlab/RTW自动生成的代码
  • 机器人大赛2D仿真组底层代码,C++代码
  • 74hc595底层代码.zip

    2021-07-22 11:24:43
    74hc595底层代码
  • BP底层代码,内附详细说明及注释 输出:连接权与阈值确定的多层前馈神经网络
  • 分页后台底层代码

    2018-09-05 17:13:32
    使用存储过程,和Pages,PageParams,进行万能的分页显示!
  • 飞思卡尔智能车比赛的底层代码中的一部分,传下做个测试
  • 解解构构跨境电跨境电商商底层代码底层代码 隐喻 || 革命命 || 重构 在提出问题的层面面上无法解决问题 爱因爱因因斯坦因斯坦 元认知 升维升维 框架框架架架 逻辑自洽逻辑自洽 11 全球视野隐喻 目录 目录 22 中国...
  • 底层驱动兼容Simulink模块库中的自带模块,用户在Simulink环境中直接使用该所述代码生成方法,全程不需要人为编写任何代码,通过这种开发方式,可以提高开发效率,减少人为出错
  • 底层实现了朴素贝叶斯分类代码,适用于各种分类数据:数值/字符、连续/离散
  • 解构跨境电商底层代码重构.pdf
  • 无线充电小车底层代码
  • ThinkPHP5底层代码逻辑梳理

    千次阅读 多人点赞 2020-07-21 13:39:28
    梳理一遍TP代码底层逻辑,为后面的漏洞总结做准备 环境部署 以TP5.0.22为例(为下次的TP-RCE环境做好准备)+ PHP 5.6.27-NTS 目录架构 根据类的命名空间可以快速定位文件位置,在ThinkPHP5.0的规范里面,命名空间...

    梳理一遍TP代码底层逻辑,为后面的漏洞总结做准备

    环境部署

    以TP5.0.22为例(为下次的TP-RCE环境做好准备)+ PHP 5.6.27-NTS

    目录架构

    根据类的命名空间可以快速定位文件位置,在ThinkPHP5.0的规范里面,命名空间其实对应了文件的所在目录,app命名空间通常代表了文件的起始目录为application,而think命名空间则代表了文件的其实目录为thinkphp/library/think,后面的命名空间则表示从起始目录开始的子目录,如下图所示:
    在这里插入图片描述

    框架流程

    我们先进入到默认的入口文件(public/index.php)

    // 定义应用目录
    define('APP_PATH', __DIR__ . '/../application/');
    // 加载框架引导文件
    require __DIR__ . '/../thinkphp/start.php';
    

    引入start.php进入到里面看看有什么

    框架引导文件(thinkphp/start.php)

    进入框架引导文件看到两行代码

    // ThinkPHP 引导文件
    // 1. 加载基础文件
    require __DIR__ . '/base.php';
    
    // 2. 执行应用
    App::run()->send();
    

    基础文件(thinkphp/base.php)

    在此文件首先看到全面大段的是定义常量或者是检查常量是否存在,主要是以下几点需要重点注意

    • 将Loader类引入
    • 注册自动加载机制
      • 注册系统自动加载,spl_autoload_register将函数注册到SPL __autoload函数队列中。如果该队列中的函数尚未激活,则激活它们。此函数可以注册任意数量的自动加载器,当使用尚未被定义的类(class)和接口(interface)时自动去加载。通过注册自动加载器,脚本引擎在 PHP 出错失败前有了最后一个机会加载所需的类。
      • Composer 自动加载支持
      • 注册命名空间定义:think=>thinkphp/library/think,behavior=>thinkphp/library/behavior,traits=>thinkphp/library/traits
      • 加载类库映射文件
      • 自动加载 extend 目录
    • 注册异常处理机制
    • 加载惯例配置

    执行应用(thinkphp/library/think/App.php)

    首先返回一个request实例,将应用初始化返回配置信息。
    之后进行如下的操作:

    • 查看是否存在模块控制器绑定
    • 对于request的实例根据设置的过滤规则进行过滤
    • 加载语言包
    • 监听app_dispatch
    • 进行URL路由检测(routecheck后面细讲)
    • 记录当前调度信息,路由以及请求信息到日志中
    • 请求缓存检查并进行$data = self::exec($dispatch, $config);,根据 d i s p a t c h 进 行 不 同 的 调 度 , 返 回 dispatch进行不同的调度,返回 dispatchdata
    • 清除类的实例化
    • 输出数据到客户端,$response = $data;,返回一个Response类实例
    • 调用**Response->send()**方法将数据返回值客户端

    总结

    画个图过一遍整个流程
    在这里插入图片描述

    根据PATH_INFO进行URL路由检测(App::routeCheck)

    通过$path = $request->path()可以获得到请求的path_info,$depr是定义的分隔符,默认时:/,之后进行路由检测步骤如下

    • 查看是否存在路由缓存,存在就包含
    • 读取应用所在的路由文件,一般默认为route.php
    • 导入路由配置
    • Route::check (根据路由定义返回不同的URL调度)
      • 检查解析缓存

      • 替换分隔符,将"/“换成了”|"

      • 获取当前请求类型的路由规则,由于在之前的Composer 自动加载支持,在vendortopthink/think-captcha/src/helper.php中注册了路由,所以在$rules = isset(self::$rules[$method]) ? self::$rules[$method] : [];中的Route::$rules[‘get’]已经存在了相应的路由规则在这里插入图片描述

      • 检测域名部署

      • 检测URL绑定

      • 静态路由规则检查

      • 路由规则检查self::checkRoute($request, $rules, $url, $depr)

        • 检查参数有效性
        • 替换掉路由ext参数
        • 检查分组路由
        • 检查指定特殊路由,例如:__miss____atuo__
        • 检查路由规则checkRule
          • 检查完整规则定义
          • 检查路由的参数分隔符
          • 检查是否完整匹配路由
        • 最终未被匹配路由的进入到self::parseRule('', $miss['route'], $url, $miss['option'])进行处理,这就牵涉到TP对于路由的多种定义在这里插入图片描述
      • 检查是否强制使用路由$must = !is_null(self::$routeMust) ? self::$routeMust : $config['url_route_must']

      • 路由无效,将自动解析模块的URL地址会进入到Route::parseUrl($path, $depr, $config['controller_auto_search'])(后面的RCE会用到这一点,将会在后续文章进行详细分析)

    • 最终将结果记录到调度信息

    总结

    首先看看路由定义:

    定义方式定义格式
    方式1:路由到模块/控制器(模块/控制器/操作)?额外参数1=值1&额外参数2=值2…
    方式2:路由到重定向地址‘外部地址’(默认301重定向) 或者 (‘外部地址’,‘重定向代码’)
    方式3:路由到控制器的方法‘@(模块/控制器/)操作’
    方式4:路由到类的方法‘\完整的命名空间类::静态方法’ 或者 ‘\完整的命名空间类@动态方法’
    方式5:路由到闭包函数闭包函数定义(支持参数传入)

    具体链接可以看看这个开发手册

    在画个图过一遍整个路由流程
    在这里插入图片描述

    小章总结

    TP大概就到这里重要的流程就走完了,后续我会直接复盘RCE漏洞,如果再有什么新增的知识点我会更新章节在本文。

    如果文章哪里有错误,恳请大家联系我一起讨论。

    展开全文
  • uboot移植底层代码

    2018-06-20 10:44:38
    移植ARM9系列芯片Uboot底层代码移植,包含驱动代码,内核代码。
  • java语言的底层代码(例如:navive)是什么语言组成的 答案:c++

    java语言的底层代码(例如:navive)是什么语言组成的

    答案:c++
    
    

    在这里插入图片描述

    展开全文
  • 如何在Pycharm中查看内置底层代码,巧用参数 引入已有或内置的函数会让代码写得更加简洁、清晰。而内置函数众多,有许多长期不用已经淡忘甚至从未谋面的函数。不知道该函数有什么功能。所以,我们需要查看底层代码来...
  • 作为一个总是用C来写代码的人来说,第一次了解到代码生成的时候我最先开始想研究的就是怎么能让生成的代码用到嵌入式控制器中。...下面通过一个简单实例来演示怎么使得应用层和底层拥有共同的接口。
  • 我写的MODBUS底层代码

    2012-07-01 21:02:45
    我近期写的一个MODBUS的底层代码,C8051写的。
  • asp.net 源码 C# 编程底层代码
  • 课程讲述如何调试TensorFlow底层的C++源代码,是目前唯一系统性讲述如何调试TensorFlow底层代码的视频。课程同时涵盖TensorFlow底层实现卷积,池化,反向传播等操作的细节,带着大家一起追踪TensorFlow的实现细节。...
  • C# Neo4jDriver操作Neo4j图形数据库底层代码和引用的dll
  • java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。 1.可变与不可变  String类中使用字符数组保存...
  • 本代码是将swissRanger的ToF相机的大部分底层代码封装到类里,提供了opencv和PCL的接口,注意,使用本代码时需要安装PCL和opencv,欢迎自行修改。
  • 解压后的3个文件放到VS的My Documents\Visual Studio 2005\Projects的目录下 然后生成即可 ,就可以点击生成 CS代码 Sql代码 适合用于三层模式的代码运用
  • 该资源为PCF8563的底层驱动函数代码,使用的是I2C通讯,压缩包里面有一个.c文件和.h文件,是基于STM32F103系列芯片编写的,开发者只需要更改里面的.c和.h文件里面的I2C引脚SCL和SDA,然后直接调用功能函数就可以将...
  • ROS小车STM32底层控制代码

    千次阅读 多人点赞 2020-08-21 00:50:02
    2.6 ROS小车STM32底层控制代码 经过之前几篇文章,我相信大家一定对下面这些模块都已经有些了解了。今天,我们将编写ROS小车STM32单片机底层控制的最后一篇文章。我们将一起按照之前的软件流程,将所有的代码整合到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,042,464
精华内容 416,985
关键字:

底层代码

友情链接: xiao-ADC多通道采集.rar