精华内容
下载资源
问答
  • 思想:将排序分为排序与未排序,将未排序数依次向排序数进行比较 步骤:1从第一个数开始(无可置疑这是一个可以被看着排序了数) 2将一位数(从第一个开始后面...6依次重复编程逻辑错位:这里肯定要定义一个

    思想:将排序分为排序与未排序,将未排序的数依次向排序数进行比较
    步骤:1从第一个数开始(无可置疑这是一个可以被看着排序了的数)
    2将下一位的数(从第一个开始后面的数都暂时归类为没有排序的数)A,与第一个数进行比较
    3如果第一个数大于A,那么就把A移动一位
    4因为第一个数前面没有数了,那么就把A插在一个数的位置上
    5此时第一个数与A都已经排好序了
    6依次重复

    编程逻辑错位:这里肯定要定义一个中间变量,而且我们要牢牢记住千万不要改变循环里面的数

    public static void InsertSort(int[] data)
    {
    //定义index索引,因为是从第一个数开始的
    for(int index=1index<data.length;index++)
       {
         int position=index;
         int key=data[position];
         //千万要记住while其实就是一个循环
         while(position>0 &&data[position-1]>key)
             {
             //元素后移
             data[position]=data[position-1];
             position--;
             }
           data[position]=key;
       }
    
    }
    展开全文
  • 如果自己定义的Azkaban Job Type的同一个Job脚本中有多个阶段,那么在任务失败中断是,Azkaban不会从中断这一步开始执行,会从中断这步的一步开始.如果中断环节是数据的输出,会导致任务成功但没有数据结果. 目前查看...

    如果自己定义的Azkaban Job Type的同一个Job脚本中有多个阶段,那么在任务失败中断是,Azkaban不会从中断这一步开始执行,会从中断这步的下一步开始.如果中断环节是数据的输出,会导致任务成功但没有数据结果.

    目前查看了Azkaban调用Job Type的部分,发现自己定义的PortKey插件中,只是定义了执行单位的构造部分,将要执行的脚本存入构造器中,后续的调度和中断回复,还是Azkaban自身的框架在处理.

    后续有时间了看过Azkaban代码再更新.

    展开全文
  • 最近看了一篇getopt使用的文章,为了追踪其执行的逻辑,于是采用GDB挂载调试的方式进行查看。但却出现了GDB打印全局变量optind的时候出现错误。 问题发现和描述  首先optind是使用getopt时候的全局变量,表示使用...

          最近看了一篇getopt使用的文章,为了追踪其执行的逻辑,于是采用GDB挂载调试的方式进行查看。但却出现了GDB打印全局变量optind的时候出现错误。

    问题发现和描述

          首先optind是使用getopt时候的全局变量,表示使用getopt时候的下一个argv的指针索引。在应用程序调试的时候设置了多个参数,但是随着多次调用getopt,全局变量optind通过gdb打印出来的值却总是1, 但是通过程序打印出来的optind确实是逐步变化的。奇怪了,gdb怎么会有这么明显的bug呢?

          于是我在程序中打印出optind的地址为0x600D60.

          +++++++++++++++++++++

          The optind address is 0x600d60.

          +++++++++++++++++++++

          那么我们看看gdb打印出来的optind的地址又是多少呢? 如下所示,OMG,他们的地址居然不一样!

          +++++++++++++++++++++

          (gdb) p &optind
          $1 = (int *) 0x3bcfd5210c

          +++++++++++++++++++++

    问题的探讨

          根据多方面的探索,后来查看到,这个涉及到一个“Copy Relocation”的技术。也就是动态库中存在全局变量的时候,在编译阶段已经在程序的.BSS段中预留了控件给动态库中的全局变量,然后当程序初始化的时候,会拷贝动态库中的全局变量到程序预留的.BSS段控件;其他所有的动态库,也将访问通过前面所说的.BSS段中的全局变量来访问原先动态库中定义的全局变量。 具体关于Copy Relocation的机制可以参考文章:http://www.shrubbery.net/solaris9ab/SUNWdev/LLM/p22.html#CHAPTER4-84604

          回到原先的问题,那么GDB打印出来并不是程序中.BSS通过Copy Relocation产生的全局变量optind, 而是打印的libc.so中原有的变量的值。

          那么怎么打印出正确的值呢?

          首先我们通过"Info var optind"查看下optind相关的信息,可以看到两处指名了optind的出处,第一处其实说明了这个是在libc.so中定义的,而gdb默认打印的也是libc.so中定义的,第二处就是之前所说的通过"Copy Relocation"技术存储的optind的实际使用的地址,其地址也是"0x600D60"。

          ++++++++++++++++++++

          (gdb) info var optind
          All variables matching regular expression "optind":


          File /usr/include/getopt.h:
          static int optind;


          Non-debugging symbols:
          0x0000000000600d60  optind@@GLIBC_2.2.5

          ++++++++++++++++++++      

          现在我们就可以通过命令[p 'optind@@GLIBC_2.2.5']打印出实际使用的optind的值。


          其实一个简单的问题背后,会隐藏着很多技术和机制。而要真正的明白问题产生的根本原因,目前所掌握的知识还远远不够,楼主一定还需再接再厉。以后还会针对这个问题引申出来的GOT,Copy Relocation等好好的研究研究。


    参考

    1.  gdb does not print right value!

    http://www.linuxquestions.org/questions/programming-9/gdb-does-not-print-right-value-908538/


    2. optind 

    https://sourceware.org/ml/gdb/2003-12/msg00160.html


    3. Copy Relocation

    http://www.shrubbery.net/solaris9ab/SUNWdev/LLM/p22.html#CHAPTER4-84604


    4. What's the purpose of copy relocation?
    http://stackoverflow.com/questions/26863009/whats-the-purpose-of-copy-relocation


    展开全文
  • 时态 时态 语态 语气(本质是 逻辑+时态问题,状语从句) ...昨天早晨6点,我正在吃早点 ...没有听到时间状语情况,做补偿。 时态=时+态 时: 现在时 过去时 将来时 过去将来时 过去将来: 我昨天8点...

    时态

    1. 时态
    2. 语态
    3. 语气(本质是 逻辑+时态问题,状语从句)

    昨天早晨6点,我正在吃早点
    I was having breakfast at 6 o 'clock yesterday morning

    过去进行时
    Was动作过去的
    Be doing进行的,过去某一点,正在发生的动作

    没有听到时间状语的情况下,做补偿。

    时态=时+态

    时:

    现在时 过去时 将来时 过去将来时

    在这里插入图片描述

    过去将来: 我昨天8点说,我以后要去北京

    动作是 说,
    时间状语 昨天

    以后去, -1 到 正无穷 的 开区间

    -x到正无穷的开区间
    这个点,是跨区间的点, 叫过去将来

    将来 过去时 x到 负无穷 与 -x 到 正无穷
    -x 到 正无穷 x取正值,负值一段 + 0点+正值一段
    X 到 负无穷 x 取正值, 正值一段 + 0点+ 负值一段
    所以 将来过去时,= 过去将来时

    态:

    一般态 怎么做
    进行态 正在做
    完成态 做完了
    完成进行态 做完了,还要继续做

    在这里插入图片描述

    时态变化

    时的变化+态的变化

    在这里插入图片描述
    +doing (完成进行,还要 have been +doing)

    在这里插入图片描述

    先讲的态:
    动词原形 do,讲的do,只讲do动词,还是助动词,没懂

    现在时 be变成am is are
    Have 变成 has
    Do 变成 does

    时的变化,加上 态的变化

    Be动词 有的时态是没有的

    一般是 简单,简单就是没变化

    动词+ing变成了名词 形容词 副词 (doing是非谓语动词,be实际动词,be doing 主系表,)
    Have + done 动词 have +非谓语动词done

    完成进行,先 进行,在变 完成
    动词Do 进行态 be+doing
    完成态 have+done
    Be+doing看成全新的谓语动词 do’
    把do’变成完成
    have do’ed=be+ed的结果 be en

    时的变化:
    现在时 动词不变,第三人称+s
    过去时 +ed be变成was 和 were ,have变成 had
    过去将来
    过去(将来) 先变将来 +shall/will 在+ed 就是shall will+ed
    Shall will+ed 变成了 should 和 would

    第一第三用shall,第二人称用will

    在这里插入图片描述

    would
    aux. 将,将要;愿意
    v. will的过去式

    done
    adj. 已完成的;做好了的;煮熟的;合乎礼仪的;合乎规矩
    int. 表示接受建议
    v. 做(do的过去分词)

    been
    v. 是,有(be的过去分词)

    was
    be的第一和第三人称单数过去式

    were
    v. 是,在(are的过去式)

    被动

    老师 把 我 表扬了
    我 被 老师 表扬了

    do -> be + done

    如进行态 be+do ing -> be be ing done
    do + ing 变成 be done 就变成 be being done

    doing 换成 being done
    done 换成 been done
    没有 am/is/are do 变成 be done

    汉语中被都是 坏事,英语中没有这个不太好的概念
    英语中的被强调客观性,强调动作的承受着(智商问题)
    某某指标被检测
    你被我爱

    我今天被老师批评了

    很少说 五百万彩票被我中了

    在这里插入图片描述

    have done 把have 和 ed去了,变成do形式
    去掉了完成,have没变,就是现在完成

    would/should have been being done
    would 说明过去将来, have 和 be 后en划掉,说明完成
    being 说明进行,be done说明被动
    总之就是过去将来完成进行时 的被动语态

    现在完成时:
    一个动作从过去持续到现在,并且已经完成
    过去发生的动作,没有准确的时间概念,
    现在进行时:
    动作发生在现在,并且正在进行中,
    将来要发生的动作(现在进行时表示将来)
    现在完成时:
    动作发生在过去,现在已经结束 (完全不符合,必须发生在现在)
    现在完成进行时
    动作在之前发生,持续到现在,并且还要继续进行下去。
    (动作发生时间在过去,动作结束在将来,现在只是它穿过的一个点)

    强调过去动作对现在的影响 错

    时:动作发生的时间
    态:动作发生的样子

    过去一般时:
    动作发生在过去

    过去进行时:
    过去某一点发生的动作,
    或者过去某一点之后,将要发生的动作
    过去完成时:
    过去的过去发生的动作(错),

    现在完成时,一个动作从过去某一点持续到现在,过去的动作对现在的影响。

    展开全文
  • 1.软件测试是为了发现程序存在代码或业务逻辑错误。 2.软件测试是为了检验产品是否满足符合用户需求 3.软件测试是为了提高用户体验 三.测试和调试区别 测试是为了发现问题,由测试人员执行 调试是为了解决问题...
  • 有可能是粗心大意错误,有可能是逻辑错误,有可能是语法错误,诸般错误皆有缘由。对于编程新手而言,一些常见错误是会时有发生。在此,就把一些常见错误曝光于‘阳光’之,让coder尽量避免,为自己代码...
  • 1)为了发现程序存在代码或逻辑错误; 2)为了检验产品是否符合用户需求; 3)为了提高用户体验;(软件开发面对就是用户,若软件出现卡顿、掉线会直接导致大量用户流失,那软件本身价值就不存在) 软件测试原则...
  • 软件测试的定义:在规定条件对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估过程。 二.测试对象:程序,数据,文档。 三.测试分类 1.从具体实现分 白盒测试:又称...
  • 然而数列、逻辑学起码常识凸显各有首项无穷数列都有末项使标准分析之前2千多年数学一直“非法”使用无穷大自然数及其倒数一子暴露出来,否定这类用而不知、名亡实存无穷数使对无穷数列认识一直存在极...
  • 具体举例来说,比如在Intel Pentium芯片中存在的逻辑错误,在Sendmail早期版本中的编程错误,在NFS协议中认证方式上的弱点,在Unix系统管理员设置匿名Ftp服务时配置不当的问题都可能被***者使用漏洞是指一个系统存在...
  • 测试的定义 尽可能去发现产品的缺陷,使产品的质量达到一定的标准。 测试的分类 按测试过程分:单元测试、集成测试、系统测试、验收... 白盒测试:检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试。 ...
  • 情况,接口某返回字段是空值,有可能就不返回该字段,由前端来逻辑判断。 比如: 用户信息接口中,性别不是必要字段,该字段为空值时,查询用户信息接口中可能就不会带有该字段 此时使用httprunner来提取该...
  • 1.数据的逻辑结构是指数据的各数据项之间的逻辑关系。 × 数据的逻辑结构是指数据元素之间的逻辑关系。 2.数据结构概念包括数据之间的逻辑结构、数据在计算机中的存储方式和数据的运算三个方面。 √ 3.数据结构的...
  • 软件测试基础定义

    2020-08-26 17:32:34
    软件测试是在规定条件对程序进行操作,以发现错误,对软件质量进行评估。 软件测试目的在于(1)发现软件缺陷和错误(2)保证软件质量,确保能够满足用户以及产品需求。软件测试目的是为了找bug,并不...
  • 另一个可以预测的现象是:一旦某一个逻辑分区损害,跟在它后面的所有逻辑分区都将丢失,而前面的逻辑分区去可以保留。这也是链式结果的特点。 三、活动分区、系统分区、启动分区、引导分区 这四个术语和前面三...
  • 【Django】如何定位常见状态码错误

    千次阅读 2018-11-22 19:19:29
    一般情况是序列化器中字段出错,出现此错误,1、查看序列化器字段,看是否字段或者选项参数是否定义错误,2、查看字段验证逻辑是否有错误。 404错误: 一般情况是路由出错,出现此错误首先去看路由,查看是否...
  • C/C++log输出宏定义示例

    千次阅读 2018-06-16 15:59:03
    作为一个菜鸟来说,Debug似乎很难,如果你要通过log找到其中当前状态下的代码逻辑或者错误之处,都不是简单事。我感觉最操蛋是通过grep -nr ... 搜索log出处。所以,作为菜鸟我,尝试写一个log输出我...
  • 定义具体Action方法时候,对已经成功绑定参数实施手工验证无疑是一种最为直接编程方式,接下来我们通过一个简单实例来演示如何将参数验证逻辑实现在对应Action方法中,并在没有通过验证情况错误...
  • DEV环境数组容量最大值的确定是由运行时异常观测到的。 主函数内: 根据数组指针1FBD00h~2^21~520000*4B=2^21B=2MB,也就是说主函数内有...通过指针计算可得他的逻辑空间含有0.8G左右,通过指针可以判断他确实...
  • 定义数据结构如下: typedef struct tagMyNode { Mytype type; //元件类型 MySubtype Subtype; //元件子类型 tagMyNode* input1; //输入端1 tagMyNode* input2; //输入端1 tagMyNode* output1; ...
  • 代码语法错误分析工具pclint8.0

    热门讨论 2010-06-29 07:00:09
    它不仅可以检查出一般语法错误,还可以检查出那些虽然符合语法要求但不易发现潜在错误。 C语言灵活性带来了代码效率提升,但相应带来了代码编写随意性,另外C编译器不进行强制类型检查,也带来了代码编写...
  • 首先我这里有一个yunfuzai_main.py: <code>from dqn_agent ...定义了一个名为Experiencenamedtuple。包括内容除了上面算法中提到(s,a,r,s').还有结束标识’done’。 def add(self, state...
  • 异常就是有异于常态、是程序在出现非正常情况下的处理方式,正确处理异常能更加严谨执行完整程序逻辑、甚至能直接影响前端给用户带来更加优越体验。本篇 Chat 主要以 Java 异常为主,讲解 Java 总体异常...
  •  最近犯了一个比较低级的错误,关于springbean模式控制,具体业务逻辑如下: 在一个action层bean中,定义了一个根据查询条件搜索数据方法,并将查询结果存放在list中,用于在前台列表中显示,由于
  • 享和协同计算,而且应用的逻辑流程也越来越复杂,涉及多个具有时间和空间约束 的步骤、资源和过程。网格工作流能方便地构建、执行、管理和监控网格应用,使 网格应用自动实施并高效执行。网格的动态性、分布性、异构...
  • 模块让你能够有逻辑地组织你 Python 代码段。把相关代码分配到一个模块里能让你代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行代码。例子例是个简单模块 support.py:support.py ...
  • 一、浅谈MVC和MVP,设计模型如图:【借用了百度百科中图片】 MVC【Model View Controller】 ...我们常常会错误的把Model层理解问业务逻辑处理过程中承载数据对象(Android/java中类) 在MVP中View并不

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 876
精华内容 350
关键字:

下定义的逻辑错误