barriers / 阅读 / 详情

web前端开发需要用到哪些知识

2023-07-09 12:28:33
TAG: web we 知识 eb
共6条回复
真可
* 回复内容中包含的链接未经审核,可能存在风险,暂不予完整展示!

应该熟练掌握的基础技能:

  • HTML4,HTML5语法、标签、语义

  • CSS2.1,CSS3规范,与HTML结合实现各种布局、效果

  • Ecma-262定义的javascript的语言核心,原生客户端javascript,DOM操作,HTML5新增功能

  • 一个成熟的客户端javascript库,推荐jquery

  • 一门服务器端语言:如果有服务器端开发经验,使用已经会的语言即可,如果没有服务器端开发经验,熟悉Java可以选择Servlet,不熟悉的可以选PHP,能实现简单登陆注册功能就足够支持前端开发了,后续可能需要继续学习,最基本要求是实现简单的功能模拟,

  • HTTP

  • 在掌握以上基础技能之后,工作中遇到需要的技术也能快速学习。

    基本开发工具

    恰当的工具能有效提高学习效率,将重点放在知识本身,在出现问题时能快速定位并

    解决问题,以下是个人觉得必备的前端开发工具:

  • 文本编辑器:推荐Sublime Text,支持各种插件、主题、设置,使用方便

  • 浏览器:推荐Google Chrome,更新快,对前端各种标准提供了非常好的支持

  • 调试工具:推荐Chrome自带的Chrome develop tools,可以轻松查看DOM结构、样式,通过控制台输出调试信息,调试javascript,查看网络等

  • 辅助工具:PhotoShop编辑图片、取色,fireworks量尺寸,AlloyDesigner对比尺寸,以及前面的到的Chrome develop tools,

  • FQ工具:lantern, 壁虎漫步

  • 学习方法和学习目标

    方法:

  • 入门阶段反复阅读经典书籍的中文版,书籍中的每一个例子都动手实现并在浏览器中查看效果

  • 在具备一定基础之后可以上网搜各种教程、demo,了解各种功能的实际用法和常见功能的实现方法

  • 阅读HTML,CSS,Javascript标准全面完善知识点

  • 阅读前端牛人的博客、文章提升对知识的理解

  • 善用搜索引擎

  • 目标:

  • 熟记前面知识点部分的重要概念,结合学习经历得到自己的理解

  • 熟悉常见功能的实现方法,如常见CSS布局,Tab控件等。

  • 入门之路

    以下是入门阶段不错的书籍和资料

  • HTML先看《HTML & CSS: Design and Build Websites》1-9章,然后《HTML5: The Missing Manual》1-4章。

  • CSS先看《CSS: The Missing Manual》,然后《CSS权威指南》

  • javascript先看《javascript高级程序设计》,然后《javascript权威指南》

  • HTTP看HTTP权威指南

  • 在整个学习过程中HTML CSS JavaScript会有很多地方需要互相结合,实际工作中也是这样,一个简单的功能模块都需要三者结合才能实现。

  • 动手是学习的重要组成部分,书籍重点讲解知识点,例子可能不是很充足,这就需要利用搜索引擎寻找一些简单教程,照着教程实现功能。以下是一些比较好的教程网址

  • 可以搜索各大公司前端校招笔试面试题作为练习题或者他人总结的前端面试题还有个人总结的面试题(带参考答案)

  • http://code.t******.com有各种各样的教程

  • MDN也有很多教程,更重要的是里面有详细的文档,需要查找某个功能时在Google搜索:xxx site:https://developer.mozilla.org

  • http://www.h********.com/zh/也有很多优质教程

  • http://www.s*******.com/

  • http://a********.com/

  • 原生javascript是需要重点掌握的技能,在掌握原生javascript的基础上推荐熟练掌握jQuery,在实际工作中用处很大,这方面的书籍有《Learning jQuery》或者去jQuery官网

  • 建一个https://g****.com/账号,保存平时学习中的各种代码和项目。

  • 有了一定基础之后可以搭建一个个人博客,记录学习过程中遇到的问题和解决方法,方便自己查阅也为其他人提供了帮助。也可以去http://w*.cnb***.com/或者http://www.c**.net/这样的网站注册账号,方便实用

  • 经常实用Google搜索英文资料应该经常找到来自http://s***********.com/的高质量答案,与到问题可以直接在这里搜索,如果有精力,注册一个账号为别人解答问题也能极大提高个人能力。

  • 经典书籍熟读之后,可以打开前面必备基础技能部分的链接。认真读对应标准,全面掌握知识

  • 继续提高

    有了前面的基础之后,前端基本算是入门了,这时候可能每个人心中都有了一些学习方向,如果还是没有。

    可以参考前面必备技能部分提到的那两个项目,从里面选一些进行发展学习。以下是一些不错的方面:

  • Grunt:前端自动化工具,提高工作效率

  • less css:优秀的CSS预处理器

  • bootstrap:优秀的CSS框架,对没有设计师的团队很不错,与less结合使用效果完美

  • requirejs:AMD规范的模块加载器,前端模块化趋势的必备工具

  • Node.js:JavaScript也可以做后台,前端工程师地位更上一步

  • AngularJS:做Single Page Application的好工具

  • 移动端web开发:智能手机的普及让移动端的流量正在逐步赶超PC端

  • Javascript内存管理:SPA长期运行需要注意内存泄露的问题

  • High Performance JavaScript(Build Faster Web Application Interfaces)

  • Best Practices for Speeding Up Your Web Site:重要技能

  • ####工具

  • chrome dev tools:前端开发调试利器,着重注意几个功能:

  • liveload: 修改页面后自动刷新,不用按F5

  • dimensions:直接在页面上测量的利器

  • livestyle:css样式修改后自动起效果,不需要刷新,elements修改后也能同步到代码中

  • image tool:测量,取色

  • UC二维码:移动端调试扫码必备

  • pagespeed,YSlow:页面性能分析和优化插件

  • 马克飞象:优秀的在线markdown编辑器,快速写周报,做记录

  • watch expression:通过表达式查看当前内存中的值

  • call stack:查看调用栈,开启async,可以看异步调用栈(这个非常有用,尤其是ajax调试的时候)

  • scope variables:作用域链上的变量,非常有用

  • console(废话)

  • elements:元素样式调整,很常用

  • sources:代码中添加断点,单步调试,以及单步调试过程中查看内存中的对象

  • network:抓包查看每个请求,非常重要,前后端联调必备

  • timeline:分析渲染、js执行等等各个阶段,性能优化利器

  • emulation:模拟移动端环境,mobile页面开发必备

  • 一些插件:

  • sublime text2:编码方便,插件多,速度快,性能好

  • emmet:提升html编码速度必备

  • sublimelinter + 各种语言的lint和hint:代码纠错

  • 一些snippets:自动补全,提升开发效率

  • Intellij IDEA和WebStorm:集成开发环境,集成了各种功能,开发比sublime要方便,但会比较吃性能

  • Mark Men:测量、取色、标注利器,拿到视觉稿之后第一个打开的软件

  • GFW Fucker:我用红杏,可以的话买个虚拟服务器当梯子

  • iHosts:非常优秀的hosts管理软件,轻松修改hosts,开发调试必备

  • Charles:Mac 平台最好用的抓包分析工具

  • Rythem:AlloyTeam出品的代理抓包软件,非常轻量,安装简单,移动端(真机)开发调试很好用

  • Wunderlist:一个非常不错的Todo List,任务、需求多的时候管理起来很方便

  • ####技能

    前端的技能其实除了JavaScript(包括NodeJS)、HTML、CSS以外,还有很多。其实前端的技能树很大,这里只能列一些我开发中见到的说一说

    #####语言基础

    JavaScript:

  • 作用域链、闭包、运行时上下文、this

  • 原型链、继承

  • NodeJS基础和常用API

  • CSS:

  • 选择器

  • 浏览器兼容性及常见的hack处理

  • CSS布局的方式和原理(盒子模型、BFC、IFC等等)

  • CSS 3,如animation、gradient、等等

  • HTML:

  • 语义化标签

  • #####进阶

    JavaScript:

  • 异步控制(Promise、ES6 generator、Async)

  • 模块化的开发方式(AMD、CMD、KMD等等)

  • JavaScript解释器的一些相关知识

  • 异步IO实现

  • 垃圾回收

  • 事件队列

  • 常用框架使用及其原理

  • jQuery:基于选择器的框架,但个人认为不能叫框架,应该算工具库,因为不具备模块加载机制,其中源码很适合阅读钻研

  • AngularJS/Avalon等MVVM框架:着重理解MVVM模式本身的理念和双向绑定的实现,如何解耦

  • underscore:优秀的工具库,方便的理解常用工具代码片段的实现

  • polymer/React: 组件化开发,面向未来,理解组件化开发的原理

  • CSS和HTML:主要是CSS3的特性和HTML5的特性,以及浏览器处理的流程和绘制原理

  • DOM树、CSSOM树、渲染树的构建流程及页面渲染的过程

  • 解析HTML、CSS、JavaScript时造成的阻塞

  • HTML5相关

  • SVG及矢量图原理

  • Canvas开发及动画原理(帧动画)

  • Video和Audio

  • flex box布局方式

  • icon fonts的使用

  • 常用NodeJs的package:

  • koa

  • express

  • underscore

  • async

  • gulp

  • grunt

  • connect

  • request

  • 一些理念:

  • 响应式Web

  • 优雅降级、渐进增强

  • dont make me think

  • 网页可用性、可访问性、其中的意义

  • SEO搜索引擎优化,了解搜索引擎的原理

  • SPA的好处和问题

  • 性能优化:

  • 减少请求数量(sprite、combo)

  • 善用缓存(application cache、http缓存、CDN、localstorage、sessionstorage,备忘录模式)

  • 减少选择器消耗(从右到左),减少DOM操作(DOM和JavaScript解释器的分离)

  • CSS的回流与重绘

  • 生态系统

  • npm

  • bower

  • spm

  • 搭建一个属于自己的博客

  • git pages

  • hexo

  • jekyll

  • #####未来

  • Web Componets:面向未来的组件化开发方式

  • HTML模板

  • Shadow DOM

  • Custom Elements

  • HTML Import

  • 移动端Native开发:这也是需要了解的,以后前端工程师会经常地和webview打交道,也要了解native开发

CarieVinne

  1. HTML5 + CSS3 + JavaScript

  Web开发基础中的基础,HTML是负责网页结构,CSS负责网页样式,JS则负责逻辑交互。前两者更像是标记语言,没有什么逻辑,JS才是前端的重中之重。 HTML5 新增的技术大部分需要结合JS学习。

  每个人学习进度可能不同,这个阶段主要是多仿站,熟悉基础,试试用CSS写响应式页面,了解JS深入性的知识,比如原型链、闭包、 设计模式 等需要更多的积累,逐渐理解并实践掌握。

  2. JQuery + BootStrap + Ajax + Json

  jQuery是JS的一个应用库,能够提升原生JS开发效率。Bootstrap则是响应式框架,更简单的实现手机/平板/PC多个设备的页面支持。Ajax技术用于异步交互,不刷新页面就能更新数据,比如 地图 应用等。Json是一种数据格式,被广泛应用在各大编程语言中。

  jQuery 和 bootstrap 会简化很多编写的代码量,用着不亦乐乎,但对于基础还不是很扎实的人建议还是少用。 Ajax 和 json 通常用于和后端交互,在实际业务中也经常用到。

  3. Git/SVN

  版本管理工具,主要用于团队开发时避免文件冲突,也可回档。前端推荐学习Git。

  4. Nodejs + Mysql /MongoDB(可选)

  运行在服务器端的JavaScript。Express是其拓展MVC框架。其中nodejs最常用到的就是npm包管理器,不用到各个网站去下载资源包。 数据库 的学习可以选择MongoDB或者MySQL,前者与Nodejs的契合度更好,不过现在大多数网站都是 PHP +Mysql的组合,如果有学PHP的打算的话,可以先学习 Mysql 。

  5. ECMAScript 6

  JavaScript 的语言标准。ES6中加入了很多新的概念,也弥补了之前版本中JS的很多缺陷,越来越多的项目开始运用ES6进行开发。学之前最好把ES5先搞懂了,目前实际项目中考虑到兼容性,ES6是需要通过Babel将其编译为ES5来部署的。

  6. Angular/React/Vue

  前端三大框架,各自也有着各自的生态系统,根据需求自行选择学习。目前企业需求量最大的仍然是Angular,但近期趋势来看react和vue则更受欢迎。因为现在前端技术发展太过于突飞猛进,工具和框架的更新比翻书还快,建议学习还是看文档比较好。学习过程中也会遇到很多用到各种构建工具的时候。

  7. 其他常用工具

  这个一样是根据需求自行选择学习。比较常用的现在有 Web pack,可以将多个不同编程风格的文件打包,比如ES6/AMD/CMD之类的模块化都能识别并编译成 浏览器 能运行的文件。Sass/Less,CSS预编译框架,可以用带有逻辑性的方式编写CSS代码。Gulp/Grunt构建工具,可以自动化对代码进行压缩合并等工作。

  8. 其他后端编程语言

  目前市场对前端基本都要求会一门后端语言, PHP / JAVA / Nodejs / Python 等。

LuckySXyd

前端前景是很不错的,像前端这样的专业还是一线城市比较好,师资力量跟得上、就业的薪资也是可观的,学习前端可以按照路线图的顺序,

callstack

0基础学习前端是没有问题的,关键是找到靠谱的前端培训机构,你可以深度了解机构的口碑情况,问问周围知道这家机构的人,除了口碑再了解机构的以下几方面:

1. 师资力量雄厚

要想有1+1>2的实际效果,很关键的一点是师资队伍,你接下来无论是找个工作还是工作中出任哪些的人物角色,都越来越爱你本身的技术专业前端技术性,也许的技术专业前端技术性则绝大多数来自你的技术专业前端教师,一个好的前端培训机构必须具备雄厚的师资力量。

2. 就业保障完善

实现1+1>2效果的关键在于能够为你提供良好的发展平台,即能够为你提供良好的就业保障,让学员能够学到实在实在的知识,并向前端学员提供一对一的就业指导,确保学员找到自己的心理工作。

3. 学费性价比高

一个好的前端培训机构肯定能给你带来1+1>2的效果,如果你在一个由专业的前端教师领导并由前端培训机构自己提供的平台上工作,你将获得比以往更多的投资。

希望你早日学有所成。

LocCloud

用蓝湖一键标注,下载不同格式的切图。

还有设计图逻辑连线、交互说明、分状态展示、高保真原型制作预览等功能。

对设计图进行树状连线,清晰展示跳转逻辑。

还可在一旁添加细节说明,方便团队成员的理解。

callstack

wio

阶段1.前端核心基础

阶段2.HTML5 + CSS3 + 移动端核心

阶段3.移动端

阶段4.服务器端

阶段5.JavaScript高级

阶段6.前端必备

阶段7.高级框架

左迁

css, js, nodejs, es6, vue

相关推荐

sharepoint发生意外错误,求助!!!

电脑A和服务器B都在一个域中,我用电脑A登陆B的sharepoint网站提示输入账号你看下,B对脑可开通了来宾帐户访问的权限,如果还不行。你再Ping下对方
2023-07-09 11:18:352

c++程序老是报内存冲突的错误,求解决

熟悉又陌生的YUV...不清楚你的RGB信息是 3个字节存储1个像素点信息还是 4个字节存储1个像素点信息?这种常见的内存越界错误,其实很容易定位。在debug下,F5启动调试模式,程序会在出错出弹出 访问冲突提示框,我们选 Debug->window->callstack 可以查看当前的调用栈情况,然后根据call stack可以定位到出错位置。接着在出错位置处,通过查看比较各个变量的值,我们一般就能找到问题所在了。
2023-07-09 11:18:421

如何关闭 PHP 报错的 Call Stack

在php.ini上修改 display_errors的值为OFF就可以了然后重启web环境~
2023-07-09 11:18:491

JQuery错误Maximum call stack size exceeded

for (int j=0; j<l+i; j++)System.out.print(" ");for (int k=2*l-1-2*i; k>0; k--)String str=br.readLine();int m=Integer.parseInt(str);int count=0;for (int i=0; i<m; i++){
2023-07-09 11:18:573

用u盘启动工具制作u盘提示创建uD分区失败

我今天也遇到同样的问题了,把U盘在PC机上格式化一下就好了,供参考哦
2023-07-09 11:19:065

什么是线程

线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。线程是独立调度和分派的基本单位。线程可以为操作系统内核调度的内核线程,如Win32线程;由用户进程自行调度的用户线程,如Linux平台的POSIX Thread;或者由内核与用户进程,如Windows 7的线程,进行混合调度。同一进程中的多条线程将共享该进程中的全部系统资源,如虚拟地址空间,文件描述符和信号处理等等。但同一进程中的多个线程有各自的调用栈(call stack),自己的寄存器环境(register context),自己的线程本地存储(thread-local storage)。一个进程可以有很多线程,每条线程并行执行不同的任务。线程特点1、轻型实体线程中的实体基本上不拥有系统资源,只是有一点必不可少的、能保证独立运行的资源。线程的实体包括程序、数据和TCB。线程是动态概念,它的动态特性由线程控制块TCB(Thread Control Block)描述。2、独立调度和分派的基本单位在多线程OS中,线程是能独立运行的基本单位,因而也是独立调度和分派的基本单位。由于线程很“轻”,故线程的切换非常迅速且开销小(在同一进程中的)。3、可并发执行在一个进程中的多个线程之间,可以并发执行,甚至允许在一个进程中所有线程都能并发执行;同样,不同进程中的线程也能并发执行,充分利用和发挥了处理机与外围设备并行工作的能力。4、共享进程资源在同一进程中的各个线程,都可以共享该进程所拥有的资源,这首先表现在:所有线程都具有相同的地址空间(进程的地址空间),这意味着,线程可以访问该地址空间的每一个虚地址。此外,还可以访问进程所拥有的已打开文件、定时器、信号量机构等。由于同一个进程内的线程共享内存和文件,所以线程之间互相通信不必调用内核。
2023-07-09 11:19:281

在JavaScript中,“Uncaught RangeError: Maximum call stack size exceeded”如何解决?

在JavaScript中,“Uncaught RangeError: Maximum call stack size exceeded”如何解决?而回看二战以来历史,立陶宛明明曾经加入苏联。其成为苏联的一个加盟共和国后,苏联领土包括立陶宛一事,获得了联合国和国际社会的普遍认可。中国科学院院士、中国科学院古脊椎动物与古人类研究所研究员周忠和负责的“克拉通破坏与陆地生物演化”成为2016年首批获得该项资助的三个项目之一。他对《中国新闻周刊》说,该项目经费管理比较宽松,但问题是这种项目太稀缺了,这虽然是一种稳定支持的模式,但本质上仍是一类竞争性很强的项目。庄辞也认为,这类项目支持的比例非常小,仍是面向极少数人,目前竞争已趋白热化。
2023-07-09 11:19:451

我下了一个国王的恩赐:北方勇士-冰与火中文版 打不开,错误提示 ”Call stack functions:"

我觉得很有可能使visual C++ 的问题,运行环境装全了吗?DirectX9.0及以上visual C++ 2008net.framework 3.5及以上这三个是大多数游戏的运行环境
2023-07-09 11:19:581

怎么调用CALL 使CALL在堆栈里不平衡

中断INT过程:1.取得中断类型码2.把标志位压入栈中3.把CS压入栈中4.把IP压入栈中5.更改CS和IP,转到中断程序CALL:将当前IP或者CS和IP压入栈中,到底是把IP还是IP和CS压入栈中。就要看CALL后到底是一个字还是2个字的,如果是一个字的,就只把IP压入栈中,例如CALL AX;如果是两个字,就先把CS压入有栈中,再把IP压入栈中,例如CALL dword ptr 内存单元地址希望对你有帮助!
2023-07-09 11:20:051

计算机需要用到的英语术语词汇表

   计算机需要用到的英语术语词汇表   CPU(Center Processor Unit)中央处理单元   Main board主板   RAM(random access memory)随机存储器(内存)   ROM(Read Only Memory)只读存储器   Floppy Disk软盘   Hard Disk硬盘   CD-ROM光盘驱动器(光驱)   monitor监视器   keyboard键盘   mouse鼠标   chip芯片   CD-R光盘刻录机   HUB集线器   Modem= MOdulator-DEModulator,调制解调器   P-P(Plug and Play)即插即用   UPS(Uninterruptable Power Supply)不间断电源   BIOS(Basic-input-Output   System)基本输入输出系统   CMOS(Complementary Metal-Oxide-Semiconductor)互补金属氧化物半导体   setup安装   uninstall卸载   wizzard向导   OS(Operation Systrem)操作系统   OA(Office AutoMation)办公自动化   exit退出   edit编辑   copy复制   cut剪切   paste粘贴   删除   select选择   find查找   select all全选   replace替换   undo撤消   redo重做   program程序   license许可(证)   back前一步   next下一步   finish结束   folder文件夹   Destination Folder目的文件夹   user用户   click点击   double click双击   right click右击   settings设置   update更新   release发布   data数据   data base数据库   DBMS(Data Base Manege   System)数据库管理系统   view视图   插入   object对象   configuration配置   command命令   document文档   POST(power-on-self-test)电源自检程序   cursor光标   attribute属性   icon图标   service pack服务补丁   option pack功能补丁   Demo演示   short cut快捷方式   exception异常   debug调试   previous前一个   column行   row列   restart重新启动   text文本   font字体   size大小   scale比例   interface界面   function函数   access访问   manual指南   active激活   computer language计算机语言   menu菜单   GUI(graphical user interfaces )图形用户界面   template模版   page setup页面设置   password口令   code密码   print preview打印预览   zoom in放大   zoom out缩小   pan漫游   cruise漫游   full screen全屏   tool bar工具条   status bar状态条   ruler标尺   table表   paragraph段落   symbol符号   style风格   execute执行   graphics图形   image图像   Unix用于服务器的一种操作系统   Mac OS苹果公司开发的操作系统   OO(Object-Oriented)面向对象   virus病毒   file文件   open打开   colse关闭   new新建   save保存   exit退出   clear清除   default默认   LAN局域网   WAN广域网   Client/Server客户机/服务器   ATM( Asynchronous   Transfer Mode)异步传输模式   Windows NT微软公司的网络操作系统   Internet互联网   WWW(World Wide Web)万维网   protocol协议   HTTP超文本传输协议   FTP文件传输协议   Browser浏览器   homepage主页   Webpage网页   website网站   URL在Internet的WWW服务程序上   用于指定信息位置的.表示方法   Online在线   Email电子邮件   ICQ网上寻呼   Firewall防火墙   Gateway网关   HTML超文本标识语言   hypertext超文本   hyperlink超级链接   IP(Address)互联网协议(地址)   Search Engine搜索引擎   TCP/IP用于网络的一组通讯协议   Telnet远程登录   IE(Internet Explorer)探索者(微软公司的网络浏览器)   Navigator引航者(网景公司的浏览器)   multimedia多媒体   ISO国际标准化组织   ANSI美国国家标准协会   able 能   active file 活动文件   add watch 添加监视点   all files 所有文件   allrightsreserved 所有的权力保留   altdirlst 切换目录格式   andotherinFORMation 以及其它的信息   archivefileattribute 归档文件属性   assignto 指定到   autoanswer 自动应答   autodetect 自动检测   autoindent 自动缩进   autosave 自动存储   available on volume 该盘剩余空间   bad command 命令错   bad command or filename 命令或文件名错   batch parameters 批处理参数   binary file 二进制文件   binary files 二进制文件   Borland international borland国际公司   bottommargin 页下空白   bydate 按日期   byextension 按扩展名   byname 按名称   bytesfree 字节空闲   callstack 调用栈   casesensitive 区分大小写   centralpointsoftwareinc central point 软件股份公司   changedirectory 更换目录   changedrive 改变驱动器   changename 更改名称   characterset 字符集   checkingfor 正在检查   chgdrivepath 改变盘/路径   chooseoneofthefollowing 从下列中选一项   clearall 全部清除   clearallbreakpoints 清除所有断点   clearsanattribute 清除属性   clearscommandhistory 清除命令历史   clearscreen 清除屏幕   closeall 关闭所有文件   codegeneration 代码生成   colorpalette 彩色调色板   commandline 命令行   commandprompt 命令提示符   compressedfile 压缩文件   conventionalmemory 常规内存   copydiskette 复制磁盘   copyrightc 版权(c   createdospartitionorlogicaldosdrive 创建DOS分区或逻辑DOS驱动器   createextendeddospartition 创建扩展DOS分区   createprimarydospartition 创建DOS主分区   createsadirectory 创建一个目录   currentfile 当前文件   defrag 整理碎片   dele 删去   deltree 删除树   devicedriver 设备驱动程序   dialogbox 对话栏   directionkeys 方向键   directly 直接地   directorylistargument 目录显示变量   directoryof 目录清单   directorystructure 目录结构   diskaccess 磁盘存取   diskcopy 磁盘拷贝   diskspace 磁盘空间   displayfile 显示文件   displayoptions 显示选项   displaypartitioninFORMation 显示分区信息   dosshell DOS 外壳   doubleclick 双击   driveletter 驱动器名   editmenu 编辑选单   emsmemory ems内存   endoffile 文件尾   endofline 行尾   enterchoice 输入选择   entiredisk 转换磁盘   environmentvariable 环境变量   everyfileandsubdirectory 所有的文件和子目录   existingdestinationfile 已存在的目录文件时   expandedmemory 扩充内存   expandtabs 扩充标签   explicitly 明确地   extendedmemory 扩展内存   fastest 最快的   fatfilesystem fat 文件系统   fdiskoptions fdisk选项   fileattributes 文件属性   fileFORMat 文件格式   filefunctions 文件功能   fileselection 文件选择   fileselectionargument 文件选择变元   filesin 文件在   filesinsubdir 子目录中文件   fileslisted 列出文件
2023-07-09 11:20:121

汇编语言CALL指令都将什么压入堆栈?INT指令呢?

首先指令寄存器在16/32/64位下分别是IP,EIP,RIP,标志寄存器是FLAGS,EFLAGS,RFLAGS下面都以32位为例CALL将下一条指令的CS:EIP压入堆栈INT要看是什么模式,还有是否更改CPL,行为比较复杂,反正最后压入堆栈的三个是EFLAGS,CS和下一条指令的EIP具体可以参考Intel或AMD的文档
2023-07-09 11:20:302

汇编中未定义stack段 call命令执行后 cs ip放哪里

放在默认栈中。这个栈是不安全的,因为你实际不能操作它。
2023-07-09 11:20:395

MATLAB simulink中出现如下错误 怎么办

1、检查电脑是否存在病毒,请使用百度卫士进行木马查杀。2、系统文件损坏或丢失,盗版系统或ghost版本系统,很容易出现该问题。建议:使用完整版或正版系统。3、安装的软件与系统或其它软件发生冲突,找到发生冲突的软件,卸载。如果更新下载补丁不是该软件的错误补丁,也会引起软件异常,解决办法:卸载该软件,重新下载重新安装试试。顺便检查开机启动项,把没必要启动的启动项禁止开机启动。扩展资料:1、硬件本身质量不佳。粗糙的生产工艺、劣质的制作材料、非标准的规格尺寸等都是引发故障的隐藏因素。由此常常引发板卡上元件焊点的虚焊脱焊、插接件之间接触不良、连接导线短路断路等故障。2、人为因素影响。操作人员的使用习惯和应用水平也不容小觑,例如带电插拔设备、设备之间错误的插接方式、不正确的BIOS参数设置等均可导致硬件故障。3、使用环境影响。这里的环境可以包括温度、湿度、灰尘、电磁干扰、供电质量等方面。每一方面的影响都是严重的,例如过高的环境温度无疑会严重影响设备的性能等等。4、其他影响。由于设备的正常磨损和硬件老化也常常引发硬件故障。
2023-07-09 11:20:561

我的魔兽大脚插件一直出现错误信息,怎么办啊?

出现错误信息,是用插件经常出现的问题。通常采用先点屏蔽错误,再点关闭。如果在出现一样这么处理。这通常是插件内部的问题,可以采用删除插件,在重新加载插件。如果不行可以等下次插件更新。(其实这种错误,对游戏影响不大,没必要理会).
2023-07-09 11:21:111

魔兽世界出现断网~插件显示如下

从语句上来看应该是有BUFF框架引起的大脚错误,这个没有办法,要么你把interface都删掉,要么就是等大脚更新,现阶段大脚问题很多,这个也是没有办法的,要么不用插件,要么自己整合,要么下多玩或者月光,或者是NGA上各位大大的插件包,就这几种办法了,首先要把插件删干净~
2023-07-09 11:21:181

巫师2错误,弹出框显示如下

第一步,调节画面,调完不要打开游戏。第二步,到我的文档witcher2的config文件夹里有个user.ini,打开,在第一行[Engine]多加一个[,也就是有两个[了,保存,然后右键点击user.ini,勾选只读,然后再进入游戏,搞定。
2023-07-09 11:21:251

QQ登陆 遇到未知的错误

意思是:你的号被网上警察封了
2023-07-09 11:21:334

迅雷不断崩溃怎么办

去下5.8版本的旧的,新的很多人都讲不好用
2023-07-09 11:21:536

JavaScript错误提示:Maximum call stack size exceeded

second方法里的 setTimeout(second(),1000); 改成 setTimeout(second,1000);试试看
2023-07-09 11:22:093

Java中在线程中再开线程,可以么

对于进程最直观的感受应该就是“windows任务管理器”中的进程管理:(计算机原理课上的记忆已经快要模糊了,简单理解一下):一个进程就是一个“执行中的程序”,是程序在计算机上的一次运行活动。程序要运行,系统就在内存中为该程序分配一块独立的内存空间,载入程序代码和资源进行执行。程序运行期间该内存空间不能被其他进程直接访问。系统以进程为基本单位进行系统资源的调度和分配。何为线程?线程是进程内一次具体的执行任务。程序的执行具体是通过线程来完成的,所以一个进程中至少有一个线程。回忆一下 HelloWrold 程序中main方法的执行,其实这时候,Java虚拟机会开启一个名为“main”的线程来执行程序代码。一个进程可以包含多个线程,这些线程共享数据空间和资源,但又分别拥有各自的执行堆栈和程序计数器。线程是CPU调度的基本单位。多线程一个进程包含了多个线程,自然就叫做多线程。拥有多个线程就可以让程序看起来可以“同时”处理多个任务,为什么是看起来呢?因为CPU也分身乏术,只能让你这个线程执行一会儿,好了你歇着,再让另一个线程执行一会儿,下次轮到你的时候你再继续执行。这里的“一会儿”实际上时间非常短,感觉上就是多个任务“同时”在执行。CPU就这样不停的切来切去…既然CPU一次也只能执行一个线程,为什么要使用多线程呢?当然是为了充分利用CPU资源。一个线程执行过程中不可能每时每刻都在占用CPU,CPU歇着的时候我们就可以让它切过来执行其他的线程。Java中的多线程Java中启用多线程有两种方式:①继承Thread类;②实现Runnable接口。There are two ways to create a new thread of execution. One is to declare a class to be a subclass of Thread. This subclass should override the run method of class Thread. An instance of the subclass can then be allocated and started.The other way to create a thread is to declare a class that implements the Runnable interface. That class then implements the run method. An instance of the class can then be allocated, passed as an argument when creating Thread, and started. 继承Thread类创建一个类,继承java.lang.Thread,并覆写Thread类的run()方法,该类的实例就可以作为一个线程对象被开启。/*** Dog类,继承了Thread类* @author lt*/class Dog extends Thread {/** 覆写run()方法,定义该线程需要执行的代码*/@Overridepublic void run() {for (int i = 0; i < 10; i++) {System.out.println(i);}}}线程创建好了,怎么让它作为程序的一个独立的线程被执行呢?创建一个该类的实例,并调用start()方法,将开启一个线程,并执行线程类中覆写的run()方法。public class ThreadDemo {public static void main(String[] args) {Dog dog = new Dog();dog.start();}}看不出什么端倪,如果我们直接调用实例的run()方法,执行效果是完全一样的,见上图。public class ThreadDemo {public static void main(String[] args) {Dog dog = new Dog();dog.run();}}如果一切正常,这时候程序中应该有两个线程:一个主线程main,一个新开启的线程。run()方法中的代码究竟是哪个线程执行的呢?Java程序中,一个线程开启会被分配一个线程名:Thread-x,x从0开始。我们可以打印当前线程的线程名,来看看究竟是谁在执行代码。class Dog extends Thread {@Overridepublic void run() {for (int i = 0; i < 10; i++) {System.out.println("当前线程:" + Thread.currentThread().getName() + "---" + i);}}}public class ThreadDemo {public static void main(String[] args) {System.out.println("当前线程:" + Thread.currentThread().getName());Dog dog = new Dog();dog.start();}}可以看到,确实开启了一个新的线程:Thread-0,main()方法的线程名就叫main。同一个实例只能调用一次start()方法开启一次,多次开启,将报java.lang.IllegalThreadStateException异常:我们再创建一个实例,开启第三个线程:public class ThreadDemo {public static void main(String[] args) {System.out.println("当前线程:" + Thread.currentThread().getName());Dog dog = new Dog();Dog dog2 = new Dog();dog.start();dog2.start();}}这时候我们已经能够看到多线程的底层实现原理:CPU切换处理、交替执行的效果了。run和start上面我们直接调用run()方法和调用start()方法的结果一样,现在我们在打印线程名的情况下再来看看:public class ThreadDemo {public static void main(String[] args) {System.out.println("当前线程:" + Thread.currentThread().getName());Dog dog = new Dog();Dog dog2 = new Dog();dog.run();dog2.run();}}可以看到,这时候并没有开启新的线程,main线程直接调用执行了run()方法中的代码。所以start()方法会开启新的线程并在新的线程中执行run()方法中的代码,而run()方法不会开启线程。查看start()的源代码,该方法调用了本地方法 private native void start0();即调用的是操作系统的底层函数:public synchronized void start() {if (threadStatus != 0)throw new IllegalThreadStateException();group.add(this);boolean started = false;try {start0();started = true;} finally {try {if (!started) {group.threadStartFailed(this);}} catch (Throwable ignore) {/* do nothing. If start0 threw a Throwable thenit will be passed up the call stack */}}}private native void start0();实现Runnable接口第二种方式,实现Runnable接口,并覆写接口中的run()方法,这是推荐的也是最常用的方式。Runnable接口定义非常简单,就只有一个抽象的run()方法。//Runnable接口源码public interface Runnable {public abstract void run();}class Dog implements Runnable {@Overridepublic void run() {for (int i = 0; i < 10; i++) {System.out.println("当前线程:" + Thread.currentThread().getName() + "---" + i);}}}这时候的Dog类看起来跟线程什么的毫无关系,也没有了start()方法,怎么样开启一个新的线程呢?直接调用run()方法?想想也不行。这时候我们需要将一个Dog类的实例,作为Thread类的构造函数的参数传入,来创建一个Thread类的实例,并通过该Thread类的实例来调用start()方法从而开启线程。public class ThreadDemo {public static void main(String[] args) {System.out.println("当前线程:" + Thread.currentThread().getName());Dog dog = new Dog();Thread thread = new Thread(dog);thread.start();}}这时候如果要开启第三个线程,需要创建一个新的Thread类的实例,同时传入刚才的Dog类的实例(当然也可以创建一个新的Dog实例)。这时候我们就可以看到跟继承Thread类的方式的区别:多个线程可以共享同一个Dog类的实例。public class ThreadDemo {public static void main(String[] args) {System.out.println("当前线程:" + Thread.currentThread().getName());Dog dog = new Dog();Thread thread = new Thread(dog);Thread thread2 = new Thread(dog);thread.start();thread2.start();}}两种方式的比较继承Thread类的方式有它固有的弊端,因为Java中继承的单一性,继承了Thread类就不能继承其他类了;同时也不符合继承的语义,Dog跟Thread没有直接的父子关系,继承Thread只是为了能拥有一些功能特性。而实现Runnable接口,①避免了单一继承的局限性,②同时更符合面向对象的编程方式,即将线程对象进行单独的封装,③而且实现接口的方式降低了线程对象(Dog)和线程任务(run方法中的代码)的耦合性,④如上面所述,可以使用同一个Dog类的实例来创建并开启多个线程,非常方便的实现资源的共享。实际上Thread类也是实现了Runnable接口。实际开发中多是使用实现Runnable接口的方式。
2023-07-09 11:22:161

maximum call stack size exceeded怎么解决

可以对WINDOW窗体的onerror事件做出操作,具体请参考以下代码:window.onerror=function (){return true;}注:此代码一定要放在所有JS脚本代码前,否则是不会起作用的。
2023-07-09 11:22:241

iOS与多线程(十) —— NSThread的使用以及锁(一)

首先看下写作环境 NSThread 位于 Foundation 库中,是对 pthread 对象化的封装,首先看一下苹果给的API,后续会根据这些进行详细的说明。 这个是类可以直接访问的属性,使用的使用直接类方法调用就可以 [NSThread currentThread] 。 使用示例 用于判断是否是多线程 使用示例 下面看一下输出 每个线程都维护了一个键-值的字典,它可以在线程里面的任何地方被访问。你可以使用该字典来保存一些信息,这些信息在整个线程的执行过程中都保持不变。比如你可以使用它来存储在你的整个线程过程中 Run loop 里面多次迭代的状态信息。 使用示例 下面看一下输出 下面看一下线程优先级的设置 这里,iOS 8.0以后 threadPriority 已经被废弃了,用 qualityOfService 替换,这个是一个枚举,在线程start以后,就变为只读属性了。 使用示例 主线程名字默认为 main ,子线程如果不指定就为空。 使用示例 callStackReturnAddresses 线程的调用都会有函数的调用函数的调用就会有栈返回地址的记录,在这里返回的是函 数调用返回的虚拟地址,说白了就是在该线程中函数调用的虚拟地址的数组。 使用示例 同上面的方法一样,只不过返回的是该线程调用函数的名字数字。 使用示例 isMainThread 用来判断该线程是否是主线程,而 mainThread 用来获取当前的主线程。 使用示例 对象方法创建 下面看一下线程的初始化 类方法创建 下面就是使用示例 下面是输出 隐式创建 下面就是线程的状态控制 isExecuting 判断线程是否正在执行, isFinished 判断线程是否已经结束, isCancelled 判断线程是否撤销。 这个是线程的入口函数。 在程序运行过程中,如果存在多线程,那么各个线程读写资源就会存在先后、同时读写资源的操作,因为是在不同线程,CPU调度过程中我们无法保证哪个线程会先读写资源,哪个线程后读写资源。因此为了防止数据读写混乱和错误的发生,我们要将线程在读写数据时加锁,这样就能保证操作同一个数据对象的线程只有一个,当这个线程执行完成之后解锁。 常用的锁有下面几种 下面就是一个卖票的示例,用来说明互斥锁的作用 下面看一下输出 首先看一下API 下面我们换成NSLock看一下 接着看一下输出 NSConditionLock 用于需要根据一定条件满足后进行 加锁/解锁. 首先看下API 下面就看一下适用场景 此锁可以在同一线程中多次被使用,但要保证加锁与解锁使用平衡,多用于递归函数,防止死锁。 首先看下API文档 下面看这个示例,其实就是递归使用这个锁 看一下输出 前面四种都是互斥锁,这里和自旋锁有什么区别和联系呢? 共同点 不同点
2023-07-09 11:22:301

Vc2010下编译通过,但是运行时出现:Debug Assertion Failed!

我也想知道
2023-07-09 11:22:382

oracle expdp导出报错“字符串缓冲区太小”

你没有ORACLE账户吧,你公司要是买了付费ORACLE会给账号的,你去要一个,我把里面关于这个的文章粘给你,不给你翻译了挺长的。你看看Symptoms应该是你这个问题,在你的11.2.0.1.0是可以发生的。后面有SolutionSymptomsAll of a sudden, your data pump export jobs all fail with the following bunch of errors:Export: Release 11.2.0.3.0 - Production on Sunday, Apr 28, 22:00:26 2013Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,Data Mining and Real Application Testing optionsORA-31626: Job does not existORA-31638: cannot attach to job Your_JOBNAME for user SYSTEMORA-06512: at "SYS.DBMS_SYS_ERROR", line 95ORA-06512: at "SYS.KUPV$FT_INT", line 428ORA-39077: unable to subscribe agent KUPC$A_4_220050709685000 to queue "KUPC$C_4_20130428220032"ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95ORA-06512: at "SYS.KUPC$QUE_INT", line 250ORA-06502: PL/SQL: numeric or value error: character string buffer too smallSolutionInitially, Oracle Development built a fix under Patch 16473783.We found out that the fix was incomplete and needed to be re-written.This is under progress and monitored via unpublished Bug 16928674.After encountering this symptom, this is not resolved unless recreating of datapump like followings. @$ORACLE_HOME/rdbms/admin/catdph.sql @$ORACLE_HOME/rdbms/admin/prvtdtde.plb @$ORACLE_HOME/rdbms/admin/catdpb.sql @$ORACLE_HOME/rdbms/admin/dbmspump.sql @$ORACLE_HOME/rdbms/admin/utlrp.sqlGenerally speaking, we can recreate the datapump objects in 11g by calling;1. Catproc.sql SQL> @$ORACLE_HOME/rdbms/admin/catproc.sql2. To recompile invalid objects, if any SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sqlThis is described in Note 430221.1 How To Reload Datapump Utility EXPDP/IMPDP
2023-07-09 11:22:451

如何分析Thread Dump

当Java Web程序运行变慢,或者发生故障时,需要使用Thread Dumps. 如果你觉得ThreadDumps非常复杂,这篇文章很可能帮助你。将会分析Java中的线程,线程如何创建的,如何管理线程,怎么从运行中的程序中dump 线程,最后怎么分析他们得到阻塞和存在瓶颈的线程。本文是在应用程序调试下得到的结果。Java和线程 一个web server使用几十到几百条线程去处理大量的并发用户。如果多条线程使用共享的资源,无法避免线程之间对数据的竞争,有时候还会发生死锁。 线程竞争是web程序上不同的线程去访问共享资源,一条线程等待另外线程释放锁。例如,在记录log的时候,线程记录log时,必须先获得锁,然后去再访问共享资源。 死锁是一种特殊的线程竞争,两个或多个线程要完成自己的任务,都要必须要等待其他的线程完成他们的任务。 线程竞争会带来各种不同的问题,为了分析这些问题,需要使用Thread Dump。Thread Dump记录了每个线程真正的状态。 Java线程的背景 线程同步 多条线程之间可以同时执行,为了确保多线程在使用共享资源上面的通用性,使用线程同步保证在同一时间只能有一条线程可以访问共享资源。 线程同步在Java中可以使用监视器。每个Java对象都有一个监视器,这个监视器只能被一个线程拥有。当一个线程要获得另外线程拥有的监视器时,需要进入等待队列直到线程释放监视器。 线程的状态 为了分析Thread Dump ,需要先了解线程的状态。线程的状态是在java.lang.Thread.State中。NEW:线程被创建但是还没有被执行RUNNABLE:线程正在占用cpu并且在执行任务BLOCKED:线程为了获得监视器需要等待其他线程释放锁WAITING:调用了wait,join,park方法使线程等待-无限期等待TIMED_WAITING:调用了sleep,wait,join,park方法使线程等待--有限期等待线程类型java中线程可以分为两种: 1. 后台线程 2. 非后台线程当没有其他的非后台线程运行时后台线程将会终止。即使你不创建线程,java应用默认也会创建很多线程。这些大多数都是后台线程,主要为了执行gc或者jmx等类型的任务从 "static void main(String[] args)"方法中开启的线程叫做非后台线程,当这些线程停止时,其他的所有后台线程也会停止()获得一个Thread Dump将会介绍三种常用的方法。请注意还会有其他很多方法可以获取Thread Dump。一个Thread dump仅仅可以显示测量时的线程状态。所以为了查看线程状态的变化,建议5到10次,每次间隔5秒。使用jstack获得Thread Dump通过使用jsp命令来获得当前正在运行的Java程序的PID[user@linux ~]$ jps -v 25780 RemoteTestRunner -Dfile.encoding=UTF-8 25590 sub.rmi.registry.RegistryImpl 2999 -Dapplication.home=/home1/user/java/jdk.1.6.0_24 -Xms8m 26300 sun.tools.jps.Jps -mlvV -Dapplication.home=/home1/user/java/jdk.1.6.0_24 -Xms8m使用PID作为jstack的参数获得Thread Dump[user@linux ~]$ jstack -f 5824使用jVisualVM获得Thread Dump通过使用jVisualVm来获得Thread Dump左边的标记,当前正在运行的进程。点击你想查看的进程,选择现场选项来查看实时的线程信息。点击Thread Dump右边的按钮来获得Thread Dump文件在Linux终端中生成通过使用ps -ef命令去获得当前正在运行的Java进程[user@linux ~]$ ps - ef | grep javauser 2477 1 0 Dec23 ? 00:10:45 ...user 25780 25361 0 15:02 pts/3 00:00:02 ./jstatd -J -Djava.security.policy=jstatd.all.policy -p 2999user 26335 25361 0 15:49 pts/3 00:00:00 grep javaUse the extracted pid as the parameter of kill –SIGQUIT(3) to obtain a thread dump.Thread Information from the Thread Dump File"pool-1-thread-13" prio=6 tid=0x000000000729a000 nid=0x2fb4 runnable [0x0000000007f0f000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:264) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:306) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:158) - locked <0x0000000780b7e688> (a java.io.InputStreamReader) at java.io.InputStreamReader.read(InputStreamReader.java:167) at java.io.BufferedReader.fill(BufferedReader.java:136) at java.io.BufferedReader.readLine(BufferedReader.java:299) - locked <0x0000000780b7e688> (a java.io.InputStreamReader) at java.io.BufferedReader.readLine(BufferedReader.java:362)Thread name:当使用 Java.lang.Thread类去生成一个线程,将被命名为Thre-(Number),然而当使用java.util.concurrent,ThreadFactory类,将会被命名为pool-(Number)-thread-(Number)Priority:表示线程的优先级Thread ID:代表线程的唯一id。(通过线程id可以获得一些有用的信息,包括cpu使用率,或者内存使用率)Thread status:代表线程的状态Thread callstack:代表线程调用的堆栈信息Thread Dump模式的类型当无法获得一个锁(阻塞)当一个线程占领住锁而其他线程无法获得这个锁,而导致应用程序所有的性能都下降。在下面的例子中,BLOCKED_TEST pool-1-thread-1 线程运行时获得<0x0000000780a000b0>锁, 同时BLOCKED_TEST pool-1-thread-2 和 BLOCKED_TEST pool-1-thread-3正在等待获得<0x0000000780a000b0>锁"BLOCKED_TEST pool-1-thread-1" prio=6 tid=0x0000000006904800 nid=0x28f4 runnable [0x000000000785f000] java.lang.Thread.State: RUNNABLE at java.io.FileOutputStream.writeBytes(Native Method) at java.io.FileOutputStream.write(FileOutputStream.java:282) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123) - locked <0x0000000780a31778> (a java.io.BufferedOutputStream) at java.io.PrintStream.write(PrintStream.java:432) - locked <0x0000000780a04118> (a java.io.PrintStream) at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202) at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:272) at sun.nio.cs.StreamEncoder.flushBuffer(StreamEncoder.java:85) - locked <0x0000000780a040c0> (a java.io.OutputStreamWriter) at java.io.OutputStreamWriter.flushBuffer(OutputStreamWriter.java:168) at java.io.PrintStream.newLine(PrintStream.java:496) - locked <0x0000000780a04118> (a java.io.PrintStream) at java.io.PrintStream.println(PrintStream.java:687) - locked <0x0000000780a04118> (a java.io.PrintStream) at com.nbp.theplatform.threaddump.ThreadBlockedState.monitorLock(ThreadBlockedState.java:44) - locked <0x0000000780a000b0> (a com.nbp.theplatform.threaddump.ThreadBlockedState) at com.nbp.theplatform.threaddump.ThreadBlockedState$1.run(ThreadBlockedState.java:7) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Locked ownable synchronizers: - <0x0000000780a31758> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) "BLOCKED_TEST pool-1-thread-2" prio=6 tid=0x0000000007673800 nid=0x260c waiting for monitor entry [0x0000000008abf000] java.lang.Thread.State: BLOCKED (on object monitor) at com.nbp.theplatform.threaddump.ThreadBlockedState.monitorLock(ThreadBlockedState.java:43) - waiting to lock <0x0000000780a000b0> (a com.nbp.theplatform.threaddump.ThreadBlockedState) at com.nbp.theplatform.threaddump.ThreadBlockedState$2.run(ThreadBlockedState.java:26) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Locked ownable synchronizers: - <0x0000000780b0c6a0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync) "BLOCKED_TEST pool-1-thread-3" prio=6 tid=0x00000000074f5800 nid=0x1994 waiting for monitor entry [0x0000000008bbf000] java.lang.Thread.State: BLOCKED (on object monitor) at com.nbp.theplatform.threaddump.ThreadBlockedState.monitorLock(ThreadBlockedState.java:42) - waiting to lock <0x0000000780a000b0> (a com.nbp.theplatform.threaddump.ThreadBlockedState) at com.nbp.theplatform.threaddump.ThreadBlockedState$3.run(ThreadBlockedState.java:34) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Locked ownable synchronizers: - <0x0000000780b0e1b8> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)当是死锁的状态线程A需要获得线程B的锁才能继续执行任务,同时线程B需要获得线程A的锁才能继续执行任务。在Thread Dump中,可以发现 DEADLOCK_TEST-1 线程拥有0x00000007d58f5e48锁,并且试着去获取0x00000007d58f5e60这把锁。另外 DEADLOCK_TEST-2 线程拥有0x00000007d58f5e60锁,并且尝试获取0x00000007d58f5e78锁。,DEADLOCK_TEST-3 线程拥有0x00000007d58f5e78锁,并且尝试获得0x00000007d58f5e48锁。可以看得出来,每个线程都在等待另外线程的锁,这种状态知道一个线程放弃锁之前都不会被改变。"DEADLOCK_TEST-1" daemon prio=6 tid=0x000000000690f800 nid=0x1820 waiting for monitor entry [0x000000000805f000] java.lang.Thread.State: BLOCKED (on object monitor) at com.nbp.theplatform.threaddump.ThreadDeadLockState$DeadlockThread.goMonitorDeadlock(ThreadDeadLockState.java:197) - waiting to lock <0x00000007d58f5e60> (a com.nbp.theplatform.threaddump.ThreadDeadLockState$Monitor) at com.nbp.theplatform.threaddump.ThreadDeadLockState$DeadlockThread.monitorOurLock(ThreadDeadLockState.java:182) - locked <0x00000007d58f5e48> (a com.nbp.theplatform.threaddump.ThreadDeadLockState$Monitor) at com.nbp.theplatform.threaddump.ThreadDeadLockState$DeadlockThread.run(ThreadDeadLockState.java:135) Locked ownable synchronizers: - None "DEADLOCK_TEST-2" daemon prio=6 tid=0x0000000006858800 nid=0x17b8 waiting for monitor entry [0x000000000815f000] java.lang.Thread.State: BLOCKED (on object monitor) at com.nbp.theplatform.threaddump.ThreadDeadLockState$DeadlockThread.goMonitorDeadlock(ThreadDeadLockState.java:197) - waiting to lock <0x00000007d58f5e78> (a com.nbp.theplatform.threaddump.ThreadDeadLockState$Monitor) at com.nbp.theplatform.threaddump.ThreadDeadLockState$DeadlockThread.monitorOurLock(ThreadDeadLockState.java:182) - locked <0x00000007d58f5e60> (a com.nbp.theplatform.threaddump.ThreadDeadLockState$Monitor) at com.nbp.theplatform.threaddump.ThreadDeadLockState$DeadlockThread.run(ThreadDeadLockState.java:135) Locked ownable synchronizers: - None "DEADLOCK_TEST-3" daemon prio=6 tid=0x0000000006859000 nid=0x25dc waiting for monitor entry [0x000000000825f000] java.lang.Thread.State: BLOCKED (on object monitor) at com.nbp.theplatform.threaddump.ThreadDeadLockState$DeadlockThread.goMonitorDeadlock(ThreadDeadLockState.java:197) - waiting to lock <0x00000007d58f5e48> (a com.nbp.theplatform.threaddump.ThreadDeadLockState$Monitor) at com.nbp.theplatform.threaddump.ThreadDeadLockState$DeadlockThread.monitorOurLock(ThreadDeadLockState.java:182) - locked <0x00000007d58f5e78> (a com.nbp.theplatform.threaddump.ThreadDeadLockState$Monitor) at com.nbp.theplatform.threaddump.ThreadDeadLockState$DeadlockThread.run(ThreadDeadLockState.java:135) Locked ownable synchronizers: - None持续等待来自远程服务的信息线程看起来是正常的,因为它的状态一直都是RUNNABLE,然而当你将thread dump按时间有序的排列,你可以看出来socketReadThread线程一直在读socket
2023-07-09 11:22:531

QQ运行一段时间后就自动弹出,报错为Type: EXCEPTION_ACCESS_VIOLATION,是咋回事?

可能是木马插件作怪。,用软件扫描下,如果没问题将QQ卸载重装。
2023-07-09 11:23:001

Call Stack窗口是怎么显示出来的

首先要进入调试状态(F5),VC6.0 在菜单栏或工具栏右键便可以看到调试窗口( watch Window、call stack Window、...)。如果是VC8.0或者VC9.0在菜单debug=〉windows下面可以找到。
2023-07-09 11:23:181

Fatal error: Call to undefined function get_header() in C:wampwwwindex.php on line 1 Call Stack

上面的错误提示是说,get_header()这个函数没有定义,据此,以下建议可供参考:1.检查这个函数是否是拼写错误在php里,内置有get_headers()函数,该函数的功用是:返回一个数组,包含有服务器响应一个http请求所发送的标头。如果失败则返回false并发出一条e_warning级别的错误信息2.检查是否在其它地方定义了这个函数如果定义,请将这个函数引入。
2023-07-09 11:23:251

Maximum call stack size exceeded 问题出现原因是什么

Maximum call stack size exceeded这个错误其实很直白,就是你程序代码堆栈调用超出了系统最大限制了。就是你不能这么一直调用【TS。DM】
2023-07-09 11:23:321

洛奇游戏BUG

分类: 电脑/网络 问题描述: client.exe caused an EXCEPTION_ACCESS_VIOLATIONin module Renderer2.dll at 001B:65F06203, pleione::rc_mesh2::Transform()+0x3d<system>OS : Microsoft Windows XP, Service Pack 2CPU : GenuineIntel, Intel(R) Pentium(R) D CPU 2.80GHz, 2810Mhz x2Video Adapter : NVIDIA GeForce 7300 GT (4318[0x10de]/915[0x393]/6.14.10.9136)Memory : 1023MBDate/Time : 2006/08/20, 20:28:38Version : 34Account : "yuyuxrx", (4503599627530115)<registers>EAX=25F92974 EBX=06AF4388 ECX=13CA06C0 EDX=0EE68300 ESI=618442DBEDI=*********** EBP=0012F7B4 ESP=0012F748 EIP=65F06203 FLG=***********CS=001B DS=0023 SS=0023 ES=0023 FS=003B GS=0000<call stack>[65F06203] Renderer2.dll::pleione::rc_mesh2::Transform() + 0x3d[65F080DF] Renderer2.dll::pleione::CRC_Mesh::_Transform() + 0x51[65E9AECE] Renderer2.dll::pleione::CActor::Transform() + 0x15[65E9AECE] Renderer2.dll::pleione::CActor::Transform() + 0x15[3F800000] <unknown module>::<unknown symbol>() + 0x0有没有高手能告诉我怎么解决??? 解析: 洛奇的许多程序都不完善,我也有过这事,天成的质量。。。。汗
2023-07-09 11:23:381

Keil的Vision4版本如何找到watch&call stack window

调试的时候在view下拉菜单里面
2023-07-09 11:23:471

Jquery出错:Uncaught RangeError: Maximum call stack size exceeded

不太懂你这个函数为什么会报错,我copy你的本地调试,什么错误提示都没有但是我要提下:1、你的html写法不标准,a标签不能直接嵌套在ul里头的2、可能是onclick是关键字,直接写函数有误,我本地是点击直接没反应,alert也没反应3、属性选择器有误li[display="block"],这个选择不到,li[style*="block"]应该这么写才对经修改方案如下:<script type="text/javascript"> function onc(){ //alert($("#a").text()) var more = $("a"); if(more.html()=="更多"){ $("li:hidden").css("display","block"); more.html("简化"); return; } if(more.html()=="简化"){ $("li[style*="block"]").css("display","none"); more.html("更多"); return; } }</script><ul> <li style="display:none">第1个li</li> <li>第2个li</li> <li style="display:none">第3个li</li> <li>第4个li</li> <li style="display:none">第5个li</li> <li>第6个li</li> <li>第7个li</li> <li>第8个li</li></ul><a href="#" id="a" onclick="onc()">更多</a>
2023-07-09 11:24:002

keil C51 callstack+locals 窗口 函数前面的加号点不开,请问哪位大神给指点下。 这是最新版本的

http://www.21ic.com/jszt/keil.htmkeil C51 资料,或许对你以后得学习有帮助!
2023-07-09 11:24:191

求大神 C++ 接口 转成java方法

提供思路:1: 用Java对这些方法重写2: 使用JNI,调用C++代码
2023-07-09 11:24:281

汇编语言中中断INT和子程序调用CALL保护现场时分别压入堆栈的是什么?

int指令相当于pushfpush cspush ipjmp xxxx:xxxxcall指令不保存标志寄存器call分为远调用和进调用远调用压入段寄存器和返回地址近调用只压入返回地址
2023-07-09 11:24:363

ext-all.js:7 Uncaught RangeError: Maximum call stack size exceeded

估计是在尝试做Ext.JSON.encode(dataArray);类似这样的encode操作吧?如果是的话需要改成for循环数组来封装元数据
2023-07-09 11:24:451

为什么我QQ一登录就发送错误报告 就掉线了?

你这个是QQ程序出错了。1.卸载QQ.在卸载QQ时,要去c:program files encentQQ目录下,把所有文件都删除,2.用优化大师清理一下注册表,重装QQ。
2023-07-09 11:25:032

visualstudiocode颜色代码起冲突的时候优先于哪个

准备两个 Gitee 账号2. A账号使用VS Code处理代码,B账号使用 记事本处理代码3.两个账号都拉取最新代码4.模拟 A , B 两账号,修改相同的文件,并且 B 要在 A之前提交,让 A不能正常拉取代码5. B账号修改代码,并推送远程库
2023-07-09 11:25:124

我安装国王的恩赐 交错世界 点进去就黑了 切换出来就出现了个报错。。 想问下怎么回事 我买的是正版的。。

文件名全改成英文试试
2023-07-09 11:25:193

ORACLE数据库 ORA-00600 [ktubko_1] 错误,请问如何解决。

建议你参考http://www.xifenfei.com/3336.html
2023-07-09 11:25:273

什么是堆和栈?函数压栈是怎么回事?

堆 heap栈 stack是两种不同的数据结构stack的特点是先入后出 就像叠盘子 先放上去的盘子后拿走(底里的抽不出来自然最后才能拿走)stack和heap放在一起讨论的话 其实不是讲的数据结构了 是说操作系统给程序分配内存的方式对于一个程序来说 运行的时候 系统分配了一定内存给它 其中一块叫堆 一块叫栈堆里面主要放 动态分配的内容 比如c里面用 malloc 分配到的空间 就在堆里 c++里面用new 分配到的也在堆里栈里面放 函数的局部变量 一个函数的局部变量 会在这个函数被调用时push到栈里 这个函数返回的时候才从栈里面pop出来栈的先入后出的顺序使得函数可以嵌套 递归 如果递归层数太多 栈也会满 就会出现栈溢出……
2023-07-09 11:25:342

请哪位高人帮我把这段C语言代码转换成MIPS汇编语言

1 .file "6.c"2 .section .rodata3 .LC0:4 .string "350257267350276223345205245344270200344270252345255227347254246344270262:"5 .align 86 .LC1:8 .text9 .globl main10 .type main, @function11 main:12 .LFB0:13 .cfi_startproc14 pushq %rbp15 .cfi_def_cfa_offset 1616 .cfi_offset 6, -1617 movq %rsp, %rbp18 .cfi_def_cfa_register 619 addq $-128, %rsp20 movq %fs:40, %rax21 movq %rax, -8(%rbp)22 xorl %eax, %eax23 leaq -112(%rbp), %rdx24 movl $0, %eax25 movl $12, %ecx26 movq %rdx, %rdi27 rep stosq28 movq %rdi, %rdx29 movl %eax, (%rdx)30 addq $4, %rdx31 movl $0, -116(%rbp)32 movl $.LC0, %edi33 call puts34 leaq -112(%rbp), %rax35 movq %rax, %rdi36 call gets37 movl $0, -120(%rbp)38 jmp .L239 .L5:40 movl -120(%rbp), %eax41 cltq42 movzbl -112(%rbp,%rax), %eax43 cmpb $96, %al44 jle .L345 movl -120(%rbp), %eax46 cltq47 movzbl -112(%rbp,%rax), %eax48 cmpb $122, %al49 jle .L450 .L3:51 movl -120(%rbp), %eax52 cltq53 movzbl -112(%rbp,%rax), %edx54 movl -116(%rbp), %eax55 cltq56 movb %dl, -112(%rbp,%rax)57 addl $1, -116(%rbp)58 .L4:59 addl $1, -120(%rbp)60 .L2:61 movl -120(%rbp), %eax62 cltq63 movzbl -112(%rbp,%rax), %eax64 testb %al, %al65 jne .L566 movl -116(%rbp), %eax67 cltq68 movb $0, -112(%rbp,%rax)69 movl $.LC1, %edi70 call puts71 leaq -112(%rbp), %rax72 movq %rax, %rdi73 call puts74 movq -8(%rbp), %rdx75 xorq %fs:40, %rdx76 je .L677 call __stack_chk_fail78 .L6:79 leave80 .cfi_def_cfa 7, 881 ret82 .cfi_endproc83 .LFE0:84 .size main, .-main85 .ident "GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3"86 .section .note.GNU-stack,"",@progbits
2023-07-09 11:25:431

Java 堆和栈到底要怎么理解

这要从操作系统里进程的内存结构说起了。。。下图是linux 中一个进程的虚拟内存分布:gt;图中0号地址在最下边,越往上内存地址越大。以32位地址操作系统为例,一个进程可拥有的虚拟内存地址范围为0-2^32。分为两部分,一部分留给kernel使用(kernel virtual memory),剩下的是进程本身使用, 即图中的process virtual memory。普通Java 程序使用的就是process virtual memory.上图中最顶端的一部分内存叫做user stack. 这就是题目问的 stack. 中间有个 runtime heap。就是题目中的heap. 他们的名字和数据结构里的stack 和 heap 几乎每啥关系。注意在上图中,stack 是向下生长的; heap是向上生长的。当程序进行函数调用时,每个函数都在stack上有一个 call frame。比如对于以下程序,public void foo(){//do something...println("haha"); // <<<=== 在这儿设置breakpoint 1}public void bar(){foo();}main(){bar();println("hahaha"); // <<<=== 在这儿设置 breakpoint 2}当程序运行到breakponit1时,user stack 里会有三个frame|| main 函数的 frame-------------------|| bar 函数的 frame-------------------<<<=== %ebp|| foo 函数的 frame------------------- <<<===%esp其中 esp 和 ebp 都是寄存器。 esp 指向stack 的顶(因为stack 向下生长,esp会向下走); ebp 指向当前frame的边界。当程序继续执行到brekapoing 2的时候stack 大概是这样的:
2023-07-09 11:25:501

汇编语言中的堆栈段指针是干什么的

用于指向堆栈的栈顶,以方便管理堆栈.
2023-07-09 11:26:178

JAVA或者C#中如何获取并输出调用堆栈上的变量值

用e.printStackTrace();如果你是说你程序中的用到的堆栈,可以在finally{}块中把堆栈的内容输出来。StackTrace ss = new StackTrace(true);String flName = ss.GetFrame(1).GetFileName();// GetMethod().DeclaringType;int lineNo = ss.GetFrame(1).GetFileLineNumber();String methodName = ss.GetFrame(1).GetMethod().Name;这是 C# 的调用栈上的内容java 中也有一个,StackTraceElement calledSte = getCallStackTraceElement();int lineNo = calledSte.getLineNumber();String className = calledSte.getClassName();String methodName = calledSte.getMethodName();
2023-07-09 11:26:441

ollydbg中bp send下断后, 堆栈窗口无调用call的信息, 这是因为缺少插件吗?

这种问题,挂到 广海 看雪 吾爱破解 比较靠谱。这个跟插件没关系吧。你的问题描述不清楚,什么叫堆栈窗口无法调用call的信息。如果bp send断了,只有3层,一般来说,是使用了线程发包,所以调用层数很少,大致都是功能函数使用消息的方式通知发包线程来做的,发包是异步线程做的,所以不好跟踪。一般来说,这样的程序,bp send不会有多大效果。还有一种可能是,程序中使用了不同的发包函数。你可以尝试断WSASend看看,或者把所有的发包函数都断一下。如果线程发包,尝试跟踪封包数据的写入,因为在上层应该还有一个专门的发包函数,负责写入封包数据,通知发包线程完成发包过程,这样来说比较符合封装逻辑。至于怎么跟踪到这个调用发包线程的发包函数,个人没太多注意,没对付过线程发包。还有种方式就是,可以尝试从关键数据入手,先找到关键的call,然后通过nop方式对call进行向下跟踪,看看能不能找到线程发包函数。以上。
2023-07-09 11:26:511

ORACLE ORA-8103错误要如何解决

ORA-8103是我们Database Consultant 经常要遇到的一个问题,了解ORA-8103的成因非常重要。【数据恢复】利用构造ROWID实现无备份情况下绕过ORA-1578、ORA-8103、ORA-1410等逻辑/物理坏块问题简单来说ORA-8103 的主要成因有2类:数据块的 block type 类型 是 无效的 或者读出来的块类型与Oracle期望的不一致。 例如 Oracle 认为该数据块的类型为data(type=6),但实际却不是。数据块中的data_object_id 和 数据字典中的data_object_id不匹配针对ORA-8103问题 我们优先推荐一些措施:ORA-08103问题的诊断最好是能生成8103错误的ERROR STACK TRACE, 在TRACE中会记录具体引发8103的对象的OBJ和OBJD,这便于我们定位可能存在corruption的对象。问题在于往往前台进程遇到ORA-08103错误不会在后台生成TRACE文件,这需要我们手动设置8103 触发ERRORSTACK的EVENTS:ALTER SYSTEM SET EVENTS "8103 TRACE NAME ERRORSTACK LEVEL 3′;解决思路包括:1. 通过OBJD和DBA定位到具体的表名和块号2. 有条件的情况下对该表做一个analyze .. validate structure3. 有条件的情况下对该表所在tablespace做一个 dbms_space_admin.ASSM_TABLESPACE_VERIFY4. 有条件的情况下move这张表或者相关的分区,尝试绕过该问题5. 有条件的情况下降该表或分区移动到MSSM表空间上,绕过该问题execute dbms_space_admin.tablespace_verify(‘&tablespace_name")oradebug setmypidoradebug tracefile_nameexecute dbms_space_admin.assm_tablespace_verify(‘&tablespace_name",dbms_space_admin.TS_VERIFY_BITMAPS)oradebug setmypidoradebug tracefile_name针对不同的 analyze validate structure 后得到的结果 , 我们可以得到一些初步的结论:如果执行 flush buffer cache之后再次analyze validate structure不再报ORA-8103错误则说明:可能是完全正常的现象,之前的ORA-8103正是也因为对象正在被DROP/TRUNCATE而导致SELECT报ORA-8103。一般来说Call Stack会显示进程正尝试访问该段的segment header。 更多信息可以参考BUG 7441661也可能该问题仅仅发生在buffer cache层,而没有发生在DISK上。通过flush buffer_cache若能解决,则一般是这种情况,往往是Buffer Cache管理的BUG 。如果执行 flush buffer cache之后再次analyze validate structure再次报ORA-8103错误则说明:如果dump对应的数据块发现 该块在逻辑上是完整一致的(也可以用bbed/dbv工具验证), 则有可能是Lost Write,则不是被其他对象重格式化使用了。这里判断Lost Write的一个重要手段是 对块做recover/blockrecover,如果recover能修复该块,则说明是因为Lost Write引起了本ORA-8103问题,如果不是则说明99%的可能性是BUG引起的。常见的一种现象是 使用第三方工具在数据库打开的情况下copy 数据库,这些工具的BUG可能导致copy 老的版本的block到目标新库中。另一种可能是 extent盘区级别的不一致。 同一个数据块/extent 可能 同时属于 2个数据段segment,这导致其中的一个被后者覆盖。 通过recover的方式是无法修复这种场景的, 因为这种逻辑的讹误发生在表空间级别的extent信息上。 可以检查dba_extents/dba_segments/dba_free_space这些视图来确定问题数据块到底是否同时属于多个对象, 或者 一个数据块 同时出现在dba_extents/dba_segments/dba_free_space 三个视图中, 因为 used extent 不该出现在dba_free_space中,而free extent不该在dba_extents,当然要排除recyclebin中对象的影响。 绝大多数情况下这种extent逻辑不一致的现象, 被称作extent overlap , 通常是Oracle Space Management空间管理层面的BUG。在对ORA-8103问题的诊断过程中 定位问题的OBJD异常重要。应当说准确地将ORA-8103错误与BUG定位起来是有难度的,因为这往往需要涉及到redo dump以发现到底是哪些opcode造成了后续的objd 或 block type 不一致。在一些BUG中我们发现,由于可能的变量陈旧,造成objd的结构未合理清除, 之后就发现block上的objd是错的了,可能遇到ORA-8103也可能是ORA-1410, 这引起了后续其他的逻辑讹误,以至于很难通过TRACE/REDO LOG DUMP来定位原始问题所在。 这也是为什么虽然在例如版本10.2.0.4上有几个ORA-8103的bug Note, 但这些BUG最终未被close为real software bug即真的软件BUG , 大多都是不了了之,因为在用户现场的TRACE和REDO DUMP都未必能真实定位到问题所在,这也是为什么我们要说逻辑讹误的分析和处理原要比物理讹误来的复杂。Maclean的经验是 在有大量Oracle DB的环境下 一年出个几次的逻辑/物理坏块是很正常的事情, 对于物理讹误 我们只要切实备份即可99%得解决。 而对于逻辑坏块可做的 事情不多, 打最新的补丁 开 db_block_checking、db_block_checksum几件事情而已。值得一说的是 如果去读一下ORA-8103的一些Bug Note,可以发现使用 LOB、APPEND INSERT、PARALLEL INSERT、exchange partition 、Split partition、advanced compression、HCC 混合列压缩往往是引起ORA-8103的高危操作 , 但实际我们又不可能放弃上述操作。如果自己搞不定可以找ASKMACLEAN专业数据库修复团队成员帮您恢复!
2023-07-09 11:27:001

主程序执行完ACALL后返回主程序后,堆栈指针SP的值

加2,别误人子弟
2023-07-09 11:27:082

系统出现0x00007ff错误怎么办?

故障原因:0x00007ff指令中引用的0x000007ff内存,该内存不能为READ是因为计算机的应用程序出错。该问题为内存错误,无法解决。Windows操作系统有时会出现错误信息,例如写内存错误系统会提示:「“该内存不能为“read”或“written”」,然后应用程序自行关闭,程序不能运行。Windows操作系统出现这个问题的最终原因是因为硬件或者软件产生了冲突。解决方法:1.按“windows+X”键调出菜单点击“运行”。2.弹出窗口,输入“cmd”然后点击“确定”。3.复制以下代码:for%1in(%windir%system32*.dll)doregsvr32.exe/s%1在弹出窗口中点击右键选择“粘贴”。4.然后按回车键,耐心等待几分钟即可。
2023-07-09 11:27:171

linux重启显示call trace 为什么 怎么办 很着急啊

用户程序可以在以下情形call trace,以方便调试:l 程序崩溃时,都会收到一个信号。Linux系统接收到某些信号时会自动打印call trace。l 在用户程序中添加检查点,类似于assert机制,如果检查点的条件不满足,就执行call trace。http://blog.csdn.net/walkingman321/article/details/6114224
2023-07-09 11:27:581