F7-task 16
记一次内核Softlockup分析【转】

记⼀次内核Softlockup分析【转】简介: softlockup 分析除⽐较常见的内核 panic 与 soft lockup 外,普通的内核死锁可能并不会对操作系统产⽣致命的影响,例如马上要分析到的这个 case —— 某个运维同学发现在 ECS 上执⾏ top 并按下 c 后会 hang 住,且⽆法响应任何命令。
经过观察,在 top 中按下 c 是打开/关闭进程启动时的完整命令,由于只是 top 进程 hang,新建⼀个 shell 可以观察到 top 进程处于 UN 状态,查看 stack 实际上是由于 rwsem_down_read_failed 被调度⾛了。
rwsem_down_read_failed 是尝试读取 rw_semaphore 信号量失败时会调⽤的函数,因此关键在于这个信号量具体是什么?⼜是谁拿⾛了这个信号量?话不多说,直接上 core。
信号量地址推导core ⾥抓到了好⼏个 UN 状态的 top,随便找⼀个看,是在从 proc ⽂件系统中读取 /proc/4424/cmdlinecrash> btPID: 28968 TASK: ffff88041a820fb0 CPU: 3 COMMAND: "top"#0 [ffff880387b8bd28] __schedule at ffffffff8168c1a5#1 [ffff880387b8bd90] schedule at ffffffff8168c7f9#2 [ffff880387b8bda0] rwsem_down_read_failed at ffffffff8168e1a5#3 [ffff880387b8be08] call_rwsem_down_read_failed at ffffffff81327618#4 [ffff880387b8be58] down_read at ffffffff8168b980#5 [ffff880387b8be70] proc_pid_cmdline_read at ffffffff8126f712#6 [ffff880387b8bf00] vfs_read at ffffffff811fe86e#7 [ffff880387b8bf38] sys_read at ffffffff811ff43f#8 [ffff880387b8bf80] system_call_fastpath at ffffffff81697809RIP: 00007f83249077e0 RSP: 00007fff1f5c99e8 RFLAGS: 00000246RAX: 0000000000000000 RBX: ffffffff81697809 RCX: ffffffffffffffffRDX: 0000000000020000 RSI: 0000000000c07700 RDI: 0000000000000009RBP: 0000000000020000 R8: 00007f8324866988 R9: 0000000000000012R10: 0000000000000007 R11: 0000000000000246 R12: 0000000000000000R13: 0000000000c07700 R14: 0000000000000000 R15: 0000000000c07700ORIG_RAX: 0000000000000000 CS: 0033 SS: 002bcrash> filesPID: 28968 TASK: ffff88041a820fb0 CPU: 3 COMMAND: "top"ROOT: / CWD: /rootFD FILE DENTRY INODE TYPE PATH0 ffff8804c0f47900 ffff88017f80ad80 ffff8807e05a7028 CHR /dev/tty11 ffff8804c0f47900 ffff88017f80ad80 ffff8807e05a7028 CHR /dev/tty12 ffff8804bfadbc00 ffff88017f80a240 ffff8807e05a4850 CHR /dev/null3 ffff8804c0f47900 ffff88017f80ad80 ffff8807e05a7028 CHR /dev/tty14 ffff8804bfadb400 ffff880449bc18c0 ffff8802e1bad750 REG /proc/stat5 ffff8804bfadb000 ffff8807dc5bf980 ffff88048fbfdf00 REG /proc/uptime6 ffff8803d3217200 ffff8807dc5befc0 ffff88048fbfd750 REG /proc/meminfo7 ffff8800686c5200 ffff8802e290c240 ffff8802e290ae60 REG /proc/loadavg8 ffff8800686c5000 ffff88017f808240 ffff88017f80c040 DIR /proc/9 ffff8804bf16c400 ffff8806afc70900 ffff8805366f1f00 REG /proc/4424/cmdline可以看到是 proc_pid_cmdline_read 在 down_read 的时候失败了,相关代码在 238 ⾏:203 static ssize_t proc_pid_cmdline_read(struct file *file, char __user *buf,204 size_t _count, loff_t *pos)205 {206 struct task_struct *tsk;207 struct mm_struct *mm;208 char *page;209 unsigned long count = _count;210 unsigned long arg_start, arg_end, env_start, env_end;211 unsigned long len1, len2, len;212 unsigned long p;213 char c;214 ssize_t rv;215216 BUG_ON(*pos < 0);217218 tsk = get_proc_task(file_inode(file));219 if (!tsk)220 return -ESRCH;221 mm = get_task_mm(tsk);222 put_task_struct(tsk);223 if (!mm)224 return 0;225 /* Check if process spawned far enough to have cmdline. */226 if (!mm->env_end) {227 rv = 0;228 goto out_mmput;229 }230231 page = (char *)__get_free_page(GFP_TEMPORARY);232 if (!page) {233 rv = -ENOMEM;234 goto out_mmput;235 }236237 down_read(&mm->mmap_sem);238 arg_start = mm->arg_start;239 arg_end = mm->arg_end;240 env_start = mm->env_start;241 env_end = mm->env_end;242 up_read(&mm->mmap_sem);......有多种⽅法可以找到这⾥的 &mm->mmap_sem。
C#--使用Task执行多线程任务

C#--使⽤Task执⾏多线程任务1. 使⽤ Task 执⾏多线程任务1class Program2 {3static void Main(string[] args)4 {5 Task task1 = new Task(() => {6 Console.WriteLine("线程ID:{0},开始执⾏", Thread.CurrentThread.ManagedThreadId);7 Stopwatch stw = new Stopwatch();8 stw.Start();9long result = SumNumbers(10000000);10 stw.Stop();11 Console.WriteLine("线程ID:{0},执⾏完成,执⾏结果:{1},执⾏⽤时{2},", Thread.CurrentThread.ManagedThreadId, result, stw.ElapsedMilliseconds);12 });1314 Task task2 = new Task(() => {15 Console.WriteLine("线程ID:{0},开始执⾏", Thread.CurrentThread.ManagedThreadId);16 Stopwatch stw = new Stopwatch();17 stw.Start();18long result = SumNumbers(20000000);19 stw.Stop();20 Console.WriteLine("线程ID:{0},执⾏完成,执⾏结果:{1},执⾏⽤时{2},", Thread.CurrentThread.ManagedThreadId, result, stw.ElapsedMilliseconds);21 });2223 Task task3 = new Task(() => {24 Console.WriteLine("线程ID:{0},开始执⾏", Thread.CurrentThread.ManagedThreadId);25 Stopwatch stw = new Stopwatch();26 stw.Start();27long result = SumNumbers(15000000);28 stw.Stop();29 Console.WriteLine("线程ID:{0},执⾏完成,执⾏结果:{1},执⾏⽤时{2},", Thread.CurrentThread.ManagedThreadId, result, stw.ElapsedMilliseconds);30 });3132 task1.Start();33 task2.Start();34 task3.Start();3536 Console.ReadKey();37 }3839static long SumNumbers(int count)40 {41long sum = 0;42for (int i = 0; i < count; i++)43 {44 sum += i;45 }46 Thread.Sleep(3000);47return sum;48 }49 }执⾏结果:2. 等待Task多线程任务执⾏完成1class Program2 {3static void Main(string[] args)4 {5 Task task1 = new Task(() => {6 Console.WriteLine("线程ID:{0},开始执⾏", Thread.CurrentThread.ManagedThreadId);7 Stopwatch stw = new Stopwatch();8 stw.Start();9long result = SumNumbers(10000000);10 stw.Stop();11 Console.WriteLine("线程ID:{0},执⾏完成,执⾏结果:{1},执⾏⽤时{2},", Thread.CurrentThread.ManagedThreadId, result, stw.ElapsedMilliseconds);12 });1314 Task task2 = new Task(() => {15 Console.WriteLine("线程ID:{0},开始执⾏", Thread.CurrentThread.ManagedThreadId);16 Stopwatch stw = new Stopwatch();17 stw.Start();18long result = SumNumbers(20000000);19 stw.Stop();20 Console.WriteLine("线程ID:{0},执⾏完成,执⾏结果:{1},执⾏⽤时{2},", Thread.CurrentThread.ManagedThreadId, result, stw.ElapsedMilliseconds);21 });2223 Task task3 = new Task(() => {24 Console.WriteLine("线程ID:{0},开始执⾏", Thread.CurrentThread.ManagedThreadId);25 Stopwatch stw = new Stopwatch();26 stw.Start();27long result = SumNumbers(15000000);28 stw.Stop();29 Console.WriteLine("线程ID:{0},执⾏完成,执⾏结果:{1},执⾏⽤时{2},", Thread.CurrentThread.ManagedThreadId, result, stw.ElapsedMilliseconds);30 });3132 List<Task> listTask = new List<Task>();33 listTask.Add(task1);34 listTask.Add(task2);35 listTask.Add(task3);3637 task1.Start();38 task2.Start();39 task3.Start();4041 Task.WaitAll(listTask.ToArray());42 Console.WriteLine("所有线程执⾏完成。
凯镭思互调仪操作手册(中英文)

F
升级标题页添加Summitek/Triasx 商标和联系方式
22/06/09
(IR7317)
Updates. New state editor GUI. (IR7402)
G
升级,新版本的测试设置文件编辑器用户界面
(IR7402)
17/08/09
Authorisation 批准
PDS PDS PDS TN
B
removed.
17/04/08
升级1.3.2和1.3.5 删除USB窗口
Changes to section 1.5 by adding report number to the state
C
editor GUI.
16/05/08
升级1.5在测试设置文件编辑器中添加报告编号
Changes to AC specifications in section 1.2 and section
WA R N I N G- RF HAZARD 警告—射频危害
This equipment is designed for use in association with radio frequency (RF) radiating systems and is capable of producing up to 50W of RF power in the 800 to 2200 MHz region. Users are reminded that proper precautions must be taken to minimise exposure to these RF fields to the recommended limits. Please pay particular care to the following areas: 此设备设计用于无线电射频(RF)发射系统,能够在800至2200兆赫的射频区域内 产生高达50瓦的射频功率(RF)。用户应注意,必须采取适当的预防措施,尽量 减少暴露在射频区域里,保持在建议的范围内。请特别注意以下几个方面:
Ollydbg常用快捷键

Ollydbg常用快捷键Ollydbg常用快捷键,各类断点Ollydbg常用快捷键:Alt+E →Modules窗口,查找输入函数Ctrl+N →查找名称标志,选择你要下断的内容Shift+F9 →强制继续执行跟踪或称拦截信息步进跟踪F12 →暂时停止F10 →打开反汇编选项菜单F9 →运行键F8 →单步跟踪结束F7 →单步跟踪F3 →打开快捷键F2 →下断点快捷键Ctrl+F9 →返回到跟踪Ctrl+F8 →自动步进扫描,按F12可停止Ctrl+F7 →同上,功能略有不同Ctrl+F6 →回到OL主窗口Ctrl+F2 →重新开始Art+F2 →结束跟踪Enter →进制转换计算Art+L →打开日志窗口Art+C →快速回到程序入口Ctrl+S →打开查找命令次序窗口Shift+F2 →打开附加选项窗口Shift+F4 →打开条件对话窗Ctrl+E →编辑机器码Ctrl+G →输入跟随地址Space →填充或修改汇编内容(NOP修改)断点设置列表一般处理bpx hmemcpybpx MessageBoxbpx MessageBoxExAbpx MessageBeepbpx SendMessagebpx GetDlgItemTextbpx GetDlgItemIntbpx GetWindowTextbpx GetWindowWordbpx GetWindowIntbpx DialogBoxParamAbpx CreateWindowbpx CreateWindowExbpx ShowWindowbpx UpdateWindowbmsg xxxx wm_movebmsg xxxx wm_gettextbmsg xxxx wm_commandbmsg xxxx wm_activate时间相关bpint 21 if ah==2A (DOS)bpx GetLocalTimebpx GetFileTimebpx GetSystemtimeCD-ROM 或磁盘相关bpint 13 if ah==2 (DOS) bpint 13 if ah==3 (DOS)bpint 13 if ah==4 (DOS)bpx GetFileAttributesAbpx GetFileSizebpx GetDriveTypebpx GetLastErrorbpx ReadFilebpio -h (Your CD-ROM Port Address) R软件狗相关bpio -h 278 Rbpio -h 378 R键盘输入相关bpint 16 if ah==0 (DOS)bpint 21 if ah==0xA (DOS)文件访问相关bpint 21 if ah==3dh (DOS) bpint 31 if ah==3fh (DOS)bpint 21 if ah==3dh (DOS)bpx ReadFilebpx WriteFilebpx CreateFilebpx SetFilePointerbpx GetSystemDirectoryINI 初始化文件相关bpx GetPrivateProfileStringbpx GetPrivateProfileIntbpx WritePrivateProfileStringbpx WritePrivateProfileInt注册表相关bpx RegCreateKeybpx RegDeleteKeybpx RegQueryValuebpx RegCloseKeybpx RegOpenKey注册标志相关bpx cs:eip if EAX==0内存标准相关bpmb cs:eip rw if 0x30:0x45AA==0显示相关bpx 0x30:0x45AA do "d 0x30:0x44BB"bpx CS:0x66CC do "? EAX"密码常用中断Hmemcpy (win9x专用)GetDlgItemTextAGetDlgItemIntvb:getvolumeinFORMationavbastrcomp (trw)Bpx __vbaStrComp (记得是两个'_')MSVBVM60!_vbastrcomp|soficeMSVBVM50! |VBAI4STRCtrl+Dbpx msvbvm60!__vbastrcomp do "d *(esp+0c)"(softice)按几次F5出册码出来了。
解决ibm服务器报警

AIX yellow attention clear
如果发现前面板有报警灯,请重置告警灯状态 ( 硬件没有报错的状态下!)
1、使用root用户登陆系统,执行“diag”命令,回车继续;
2、看到“Press the F3 key to exit or press Enter to continue.”时,回车继续
“Set System Attention Indicator to Normal”,回车,“Set System
Attention Indicator to Normal”前面出现“+”号,表示选定此项;
4、按“F7”提交。以上步骤可以熄灭小型机橙色告警灯
还有可能就是要进asmi跟hmc来清除了
方法二:
使用root用户登陆系统,执行“diag”命令,回车继续;
1、选择“Task Selection”,回车继续;
2、选择“Identify and Attention Indicators”,回车继续;
3、选择
即可清除日志
关闭面板报警灯方法:System Configuration-->
Service Attention Indicator-->
Turn off the system attention indicator
选项即可关闭前面板的橙色报警灯
二、在AIX下用命令及菜单的处理方法(来自网上,不过自己动手做过)
+ mem0 ——-00-00 –Memory
+ proc0 ——00-00 –Processor
+ L2cache0 —00-00 –L2 cache
华为交换机状态查看常用命令

华为交换机状态查看常用命令当华为交换机设备发生异常时,可以通过查看设备信息检查状态是否正常1、查看设备的部件信息和状态信息[]display device ?slot Slot| Matching output<cr>[]display device s[]display device slot ?<0> The present slot[]display device slot 0S3700-52P-SI-AC's Device status:Slot Sub Type Online Power Register Status Role - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -0 - 3752F Present PowerOn Registered Normal Mast er[]2、查看设备的制造信息[]display device manufacture-info [ slot slot-id | backplane ]3、查看设备序列号每台设备的序列号ESN(Equipment Serial Number)是唯一的。
[] display esn4、查看版本信息通过查看设备当前的版本信息,可以判断设备是否需要升级或者升级是否成功。
[]display version ?slot Slot| Matching output<cr>[]display version sl[]display version slot ?<0> The registered slot[]display version slot 0EMFEA 0(Master) : uptime is 0 week, 0 day, 0 hour, 18 minutes 128M bytes DDR Memory16M bytes FLASHPcb Version : VER BBasic BOOTROM Version : 248 Compiled at Jun 26 2012,18:54:52Software Version : VRP (R) Software, Version 5.70 (V100R006C03)5、查看电源信息当设备的供电出现异常时,用户可以执行以下命令查看设备的电源状态信息。
研究生英语综合教程-下-课后习题答案
Unit OneTask 11. provinces b.2. woke a.3.haunt b.4.trouble a.5.weathers d.6.wakeb.7.coined c.8. trouble b.9.weather c. 10. province c. 11. coin a. 12. value a.13. haunts a. 14. has promised a. 15. trouble c. 16. coin b. 17. promise d, 18. values c. 19. refrain b. 20. valued e.Task 21. tranquil2. ultimately3. aftermath4. cancel out5.ordeal6.drastic7. legacy8. deprivations9. suicidal 10. anticipated 11. preoccupied 12. adversities 13. aspires 14. nostalgia 15, retrospectTask 31. a mind-blowing experience2.built-in storage space3.self-protection measures4. short-term employment5.distorted and negative self-perception6. life-changing events7. all-encompassing details8.a good self-imageUnit TwoTask1I. A. entertainment B. entertaining2. A.attached B.attachmentB. historic4. A. innovative B. Innovations5. A. flawed B. flawlessB. controversial7. A. revise B. revisions8. mentary B. commentator9.A. restrictive B. restrictions10.10. A.heroic B. heroicsTask 21. ethnic2.corporate3.tragic4. athletic5. underlie6. stack7. intrinsic8. revenue9. engrossed 10. awardTask 31) revenues 2)receipts 3) economic 4)rewards 5)athletes6) sponsor 7)spectators 8) maintain 9) availability 10) stadiums 11) anticipated 12) publicityUnit ThreeTask 11.B 2, D 1 A 4, C 5, A 6.B 7,C 8. A 9.B 10. CTask2LA. discrete B. discreet C. discretion2.A. auditors B. auditorium C. audit D. auditory E. audited1 A. conception B.contrivance C. contrive D. conceive4.A. giggling B. gasped C. gargling D. gossip5.A. affectionate B. passion C. affection D. passionateB. relentlessC. relevant7.A. reverence B. reverent C. revere8.A. peeping/peep B.peered C. perceive D.poringTask31) gain 2) similarities 3) diverse 4)enrich 5) perspective6)discover 7)challenging 8) specific 9)adventure 10)enlightens11) opportunities 12) memories 13) joyful 14) outweighs 15) span)Unit FourTask 11) uncomfortable 2)reading 3)immerse 4)deep 5) access 6)concentration7)stopped 8)altered 9)change 10) different 11)decoders12) disengaged 13) variations 14) words 15) tighterTask 21.D2.A3. B4.B5.D6. A7. C8. CTask 1Step 1l)i 2)f 3)a 4)b 5)h 6)j 7)c 8)e 9)d 10)gStep 21)fidgety2)crushing3)pithy4) foraging5) definitive ,6)propelled7) applauded8) ubiquity9) duly10) curtailTask 21. above2.on3. to4.on5.on/about6. to 7 .with 8. at 9. on/about10. inTask 31. may have a subtle effect on2.provide free access toe-books3. isinthe midst ofa sea change4. has been onthe faculty ofHarvard University5.a voracious book reader6. you'll stay focused onit7. the conduit for information8.your check came asanabsolute godsend9. lost the thread ofthe story10. stroll through elegant proseUnit FiveTask 1Task2revenge5.sheered6.9.protested10. duplicates11. level12. revenge13.skirt14. protests15. slip16.duplicate Unit SixI.C 2.A 3.C 4.A 5.D 6.C 7.B 8.D 9.A 10.C lI.B 12.ATask21. Water isnot an effective shield2.engulfed inflames3.the rights ofsovereign nations4. outpaced its rivals inthe market5. There's no need tobelabor the point6. She invoked several eminent scholars7. from two embattled villages8. According tothe witness's testimony9. Inspite ofour best endeavors10. After many trials and tribulationsTask21) remain2) childish3)reaffirm4)precious5)equal6)measure7)greatness8) journey9)leisure10) fame11) obscure12) prosperityUnit SevenTask1I.C 2.B 3.B 4.D 5.B 6.C 7.C 8.A 9.B 10.BTask21. patrons b.3. reference d.4. inclination c5. host d.6. diffusing b.7. host c8.inclination a.9. references c.10. patrons a.11. reference a.12. host a.13. diffuses a..14. designate a.15. designate c.Task31) alive2)awakened3) trip4)stone5)remains6)beyond7)records8)social 9)across10) surrounding11) mental12) miracle13) having 14) failure15) participateUnit EightTask 11.B2.D3. A4.B5.A6. D7. D8.A9. A 10. CTask21. A. outburst B.bursting C. outbreak2.A. adverse B.adversity C. advised3.A. distinguishes B.distinct C. distinguished4.A. sight/vision B. view C. outlook D. visions5. A. implicit B.implicit/implied C. underlyingB. awashC. washing7.A. jumped/sprang B. springs C.leap D.jumped8. A. trail B. trail/track C. traceD. trackE.trace9.A. sensed B.sensible C. senseD. sensitiveE.sensational10.A. prosperous B.prosperity C. prospects D. prophecy1)echoes2) pays heed to3)hidden4) objectively5) decipher6)presence7)conviction 8)shot9)however10) slaughter11) bare12) trim13) are connected to14) strive15) yield Unit NineTask 11.A2.B3.D4.A5.B6.B7.C8.A9.C 10.DTask2I. explain, plain, complained, plain2. tolerate, tolerant, tolerance3. consequence,sequence,consequent4. commerce, commercial, commercial, commercialism, commercially5. arouse, arising, arise, arousal6. irritant, irritation, irritable, irritate7. democratic, dynamic, automated, dramatic8. dominate, dominant, predominant, predominate9. celebrate, celebrity, celebrated, celebration10. temporal, contemporary, temporaryTask3I) encompassing2)standard3)constraints4)presented5)resolution6) constitute7) entertainment8) interchangeably9) distinction10) fuzzy11) technically12) devoted to13) ranging14) competing15) biasesUnit TenTask 11) beware of2)unpalatable3)delineate4) Ingrained5) amplify6) supplanted7) pin down8)discretionary9) stranded10)swept throughTask21. that happy-to-be-alive attitude2.anl-told-you-so air3. the-end-justifies-the-means philosophy4.Aheart-in-the-mouth moment5.a now-or-never chance6. a touch-and-go situation7.a wait-and-see attitude8.too-eager-not-to-lose9.a cards-on-the-table approach10. anine-to-five lifestyle11.a look-who's-talking tone12. around-the-clock service13. a carrot-and-stick approach14. a rags-to-riches man15. a rain-or-shine picnicTask3I) exquisite2)soothe3)equivalent4)literally5)effective6)havoc7)posted8)notify9) clumsy10) autonomously。
处理WIN7下无法运行16位DOS程序故障的方法
处理WIN7下无法运行16位DOS程序故障的方法在Windows 2000/XP/VISTA/7下运行16位MS DOS程序时,可能会遇到“Config.nt The system file is not suitable for running MS-DOS and Microsoft Windows applications”(Config.nt 系统文件不适用于运行MS-DOS 与Microsoft Windows 应用程序)错误信息,然后只能点击关闭结束程序,下面介绍几种解决问题的方法以供参考。
本人在实际使用过程中遇到了这样的情况,初步怀疑是WIN7为了安全起见,禁止16位纯DOS程序运行,检查config.nt文件,未发现异常。
在网上搜索此类故障,得到的解答普遍如下,如Microsoft官方描述:方法1将CD 插入CD 驱动器或DVD 驱动器。
单击“开始”,然后单击“运行”。
在“打开”框中,键入cmd,然后单击“确定”。
在命令提示符处键入以下命令,并在键入每条命令后按Enter:expand <CD-ROM 驱动器号>:\i386\config.nt_ c:\windows\system32\config.ntexpand <CD-ROM 驱动器号>:\i386\autoexec.nt_ c:\windows\system32\autoexec.ntexpand <CD-ROM 驱动器号>:\i386\command.co_ c:\windows\system32\ exit启动或安装程序。
如果问题已经解决,请不要继续执行余下的步骤。
如果问题没有解决,请转至下一步。
注意:在以下过程中,不会编辑或创建 文件。
因此,您可能必须从Windows XP CD-ROM 中展开它。
启动记事本。
在记事本中,键入下列条目:dos=high, umbdevice=%SYSTEMROOT%\system32\himem.sysfiles=40在“文件”菜单上,单击“另存为”。
SOFTICE命令详解FO命令F作用填充某一块内存区域语法F
SOFT-ICE命令详解 (2)F-O命令: F作用: 填充某一块内存区域语法: F address l length data-list用法:length : 字节长度data-list: 所要填的数据. 可以是用单引号或双引号括起来的字符串执行F 命令将向所指定的内存区域填充length 长度的数据,如果数据不够长度,将重复数据,直到达到长度为止.点评: 无命令: FAULTS作用: 打开或关闭错误跟踪功能语法: FAULTS [on │ off]用法:FAULTS 命令将打开或关闭SoftICE的错误跟踪功能.不加参数将显示当前的开关状态.点评:由于SoftICE做为一个DEBUGGER,FAULTS 默认为ON, 所以一旦CPU有非法指令,SoftICE就会不停地弹出, 让你知道错在哪里,实际在工作中这样的情况如果太频繁地发生,最好将其置为OFF.我一般将其置为ON, 当发生非法指令时再手工置为OFF.你也可以在WINICE.DAT 中一开始就置其为OFF. 初学者一般不知道有这个命令, 一旦发生非法指令,除了按R键,只有傻站着 .-(命令: FILE作用: 显示或切换当前源文件# 语法: FILE [file-name]用法:FILE 命令常用来辅助在源文件中没有符号表的地方下断点. 用FILE命令将所需的源文件显示在代码窗口中,用SS 命令查找一下,再用BPX或F9来下断点.如果加文件名参数,则所选的文件变成当前文件, 并被显示在代码窗口中. 如果没有文件名参数,则显示当前的源文件(如果当前有的话).如果加 * ,则列出当前符号表中所有源文件. 在WIN95中,用FILE 加文件名同时也切换内存地址内容.点评:一般用于高级编程工具的辅助调试,如C语言等.不过这些编程工具已经内置DEBUGGER,所以就看个人习惯了.命令: FKEY作用: 显示或修改当前快捷键定义语法: FKEY [function-key string]用法:function-key: 快捷键:F1 - F12 :SF1 - SF12 : Shift键加F1 - F12CF1 - CF12 : Ctrl键加F1 - F12AF1 - AF12 : Alt键加F1 - F12string : 一个或多个SoftICE的命令.命令前加 ^ 表示在按快捷键时不显示相应的命令内容.命令后加;代表回车.FKEY 后只跟function-key,而不跟string,将取消该快捷定义.除了用FKEY命令可以定义快捷键外,用SoftICE的LOADER也能做到这一点默认快捷键清单:F1=h; F2=^wr;F3=^src; F4=^rs;F5=^x; F6=^ec;F7=^here; F8=^t;F9=^bpx; F10=^p;F11=^G @SS:ESP; F12=^p ret;SF3=^format; CF8=^XT;CF9=TRACE OFF; CF10=^XP;CF11=SHOW B; CF12=TRACE B;AF1=^wr; AF2=^wd;AF3=^wc; AF4=^ww;AF5=CLS; AF8=^XT R;AF11=^dd dataaddr->0;AF12=^dd dataaddr->4;CF1=altscr off; lines 60; wc 32; wd 8;CF2=^wr;^wd;^wc;点评: 无命令: FLASH作用: 在 P 和 T 命令执行过程中刷新Windows 屏幕语法: FLASH [on │ off]用法:如果将FLASH 置为 ON ,则在执行T或P命令时,SoftICE将刷新一下Windows 屏幕,这在调试一个直接对显存操作的程序时特别有用.在一般情况下,当用 P 命令跨过一个CALL 时,而此 CALL 又调用显示驱动程序时,Sof-tICE才重新刷新屏幕.FLASH 命令不带参数将显示当前状态.默认FLASH OFF.点评: 无命令: FORMAT作用: 改变数据窗口的显示格式语法: FORMAT用法:FORMAT 命令用来改变数据窗口的显示格式.SoftICE有快捷键 Shift-F3 来代替FORMAT.显示格式将按字节,字,双字,短实型,长实型,10字节实型循环.点评: 参见 D, DATA 命令.命令: G作用: 执行到某一地址语法: G [=start-address] [break-address]用法:=start-address: 开始地址break-address : 中断地址G 命令不带参数将从SoftICE中返回.如果带参数break-address,则SoftICE将在所指定的地址处下一个一次性断点; 如果带=start-address,SoftICE 将从指定的地址处开始执行,否则从当前CS:EIP处执行. 程序中其他的断点(非G命令下的断点)照样起作用. 无论是谁先弹出,都将清除G 命令所下的一次性断点.G 命令不带参数类似于 X 命令.G 命令在Windows95中使用除错寄存器, 如果除错寄存器用完,则用INT 3.点评: 由于G 命令缺省用DRx,所以有时可以对付一些在INT 3上作手脚的程序.命令: GDT作用: 显示全局描述符表语法: GDT [selector]用法:selector: 指定GDT选择器GDT 命令将显示全局描述符表的内容.如果加选择符参数,则只显示此选择符所指的描述符.输出:GDT 的线性基址和长度将显示在输出数据的顶行.输出数据的每一行内容的说明:value: 最低两位即描述符特权级type : 描述符类型,如下:Code16 : 16位代码描述符Data16 : 16位数据描述符Code32 : 32位代码描述符Data32 : 32位数据描述符LDT : 局部描述符表描述符TSS32 : 32位任务状态段描述符TSS16 : 16位任务状态段描述符CallG32: 32位调用门描述符CallG16: 16位调用门描述符TaskG32: 32位任务门描述符TaskG16: 16位任务门描述符TrapG32: 32位陷肼门描述符TrapG16: 16位陷肼门描述符IntG32 : 32位中断门描述符IntG16 : 16位中断门描述符Reserved: 保留的描述符base : 描述符中的段基址limit: 描述符中的段界限DPL : 描述符特权级,0,1,2,3present bit: P 或 NP 表示该段是否在内存中segment attributes: 段特性:RW: 数据段可读写RO: 数据段只读RE: 代码段可读可执行EO: 代码段只可执行B: TSS(任务状态段)忙置位ED: 数据扩展方式参见 LDT.点评:这段翻译并不完全用PDF手册上的.如"selector" 原指选择符(器),用来指向描述符表中的描述符, 而 PDF中type 的说明全用到 selector说的意思虽是一样,但和别的文献矛盾,故认为不妥,将其翻译成descriptor 即描述符.实际上可以看出,一个选择符指向一个描述符,两者是一致的.描述符类型实际上也就是指向它的选择符类型.命令: GENINT作用: 强行产生一个中断语法: GENINT [nmi │ int1 │ int3 │ interrupt-number]用法:interrupt-number: 对Windows95来说,0-5fhGENINT强行产生一个中断,用于SoftICE和别的DEBUGGER协作的时侯,如:GENINT nmi 将使SoftICE将控制返还给CodeView For Dos.(对其他DEBUGGER,请尝试0,1,2,3)GENINT还用于测试中断例程.但SoftICE不检测一个中断是否有效,它只是摹拟中断的产生,所以当用此命令时要注意相应的中断例程是否存在.点评: 无命令: H作用: 显示帮助信息语法: H [command]用法:键入 H 命令不带任何参数将显示所有命令的帮助. 要获得详细的帮助,在 H 后加命令名就可.详细的帮助将包括命令的描述,命令的语法,和例子.点评:H 命令可以很方便地帮助使用者查询SoftICE的命令.实际上在命令窗口的底部有一个状态条,它提供的实时帮助也是很有用的.命令: HBOOT作用: 系统重新启动语法: HBOOT用法:HBOOT 将重新启动计算机.等同于按 Ctrl+Alt+Del 组合键.HBOOT 一般都能成功,只有特殊情况下(某些插卡需要重加电)才用机器上的RESET或POWER键.点评:HBOOT 让我想到两件事:1,以前学微机时,老师老是盯着我们,唯恐我们乱启动机器.想起来真是不寒而栗, 好象是我们的过错一样.可机器明明死了嘛,不重新启动怎么行?2,有大部分品牌机上没有RESET键, 死机就按POWER键,按得老板倒抽凉气.:)命令: HEAP作用: 显示Windows全局堆语法: HEAP -L [free │ module-name │ selector]用法:-L : 只显示含局部堆的全局堆入口module-name: 模块名.selector : LDT 选择符HEAP FREE 将显示空闲的全局堆.HEAP 跟模块名将只显示由指定的模块拥有的全局堆入口. HEAP 跟LDT 选择符将只显示与此选择符相应的全局堆入口. HEAP 不带参数将显示整个全局堆的情况.输出:selector or handle: 选择符符或句柄.address : 32位虚拟地址size : 堆的大小(字节)module name : 模块名--------------------------------type : 全局堆的类型code : 不可丢弃的代码段code D : 可丢弃的代码段Data : 数据段ModuleDB : 模块数据基础段TaskDB : 任务数据基础段BurgerM : "三明治"(就是堆本身)Alloc : 被动态分配的内存Resource : Windows 资源--------------------------------额外信息:如果某全局堆的入口是代码段或数据段,则会显示该段在.EXE中的段号.如果某全局堆的入口是Windows资源,则会附加显示如下资源类型:--------------------------------UserDef(用户自定义);Icon(图标);String(字符串); Accel(快捷键);IconGrp(图标组);Cursor(光标);Menu(菜单);FontGrp(字体组);ErrTable(错误表);NameTabl(名字表);Bitmap(位图);Dialog(对话框);Font(字体);CursGrp(光标组)--------------------------------点评:PDF 手册中称堆本身为Burger-->"三明治"(碎肉夹饼)很贴切,堆本来就是乱七八遭.命令: HEAP32作用: 显示Windows全局堆语法: HEAP32 [hheap32 │ task-name]用法:hheap32 : 由HeapCreate()返回的堆句柄.task-name: 32位任务的名字.HEAP32 不带参数显示32位进程的堆的情况:.KERNEL32 缺省系统堆..进程用HeapCreate()申请的私有堆..两个由VMM产生的Ring-0级的堆.第一个是换页锁定的堆,第二个是可换页的堆..一个属于所有虚拟机的Ring-0堆.如果加上进程名,SoftICE将显示所有该进程的缺省堆,且地址内容也切换到该进程中.如果加上堆的基地址而不是进程名,SoftICE将显示该进程的非缺省堆.WINDOWS 95的调试版还提供了额外的调试信息,想要用SoftICE看到这些信息,必须:.对于KERNEL32 Ring-0堆,必须安装有SDK除错版..对于VMM Ring-0堆,必须安装VMM的DDK除错版.输出信息(HEAP32):HeapBase : 堆的基址MaxSize : 堆可增长的最大范围, 在此范围内堆无需再创建一个新段.Committed: 以千字节为单位当前存在于物理内存中的被保证的内存大小Segments : 堆中段的数量. 当堆增长超出段所能容纳的范围,就建立一个新段Type : 堆的类型:--------------------------------Private: 由应用程序建立的Ring-3堆System : KERNEL32建立的Ring-3堆Ring0 : VMM建立的Ring-0堆VMM## : 由VMM建立的为特定虚拟机存储数据的堆.--------------------------------输出信息(HEAP32 带参数):Address: 堆元素的地址.Size : 以字节为单位堆元素的长度.Free : 如果堆元素是空闲的块,则会显示"FREE",否则不显示.点评: 在SoftICEv3.20实际操作上和手册说的中有些许不同.命令: HERE作用: 运行到当前光标所在行语法: HERE用法:HERE 命令让程序一直走到光标所在行再停下来.注意:只有当光标在代码窗口中时才有效.如果代码窗口不可见或光标不在代码窗口中,则请用 G 命令代替.也可用EC 命令将光标移到代码窗口中去,再用 HERE.HERE 命令有个快捷键 F7.将光标定位到你想让程序暂停的指令处,按下F7 ,程序将在此处设一个一次性断点.程序中其他非一次性的断点照样起作用. 无论是谁先弹出,都将清除 HERE 所下的一次性断点.和G命令一样,HERE 命令尽量采用除错寄存器DRx, 只有用完时才用INT 3点评: 无.命令: HWND作用: 显示窗口句柄的信息语法: HWND [-x][hwnd │ [[level][process-name]]用法:level : 窗口等级号码.0 是最高级.1 其次,等等.窗口等级代表了父窗口和子窗口的关系. -x : 显示窗口的冗余信息.hwnd : 窗口句柄.process-name: 任何当前进程名如果指定了窗口句柄,就无需指定等级, 进程名等其他参数,SoftICE将显示所指定窗口句柄的信息.输出:Class Name : 此窗口所属类的名称或类的原子.Window Procedure: 窗口函数.点评: 窗口句柄很有用的.(废话!)命令: I作用: 从输入/输出(I/O)端口读入数据语法: I[size] port用法:size: B 字节(默认);W 字;D 双字port: 端口地址.I 命令在大多数情况下是作一个I/O输入指令, 获取真实的硬件端口的数据. 在虚拟端口的情况下,取得真实值和应用程序所见到的虚拟值可能不同. 对于 21h 和A1h 端口,SoftICE 是例外,它不进行读取,而是返回So-ftICE弹出时的值.点评: 参见 O 命令.命令: I1HERE作用: 遇到内嵌的INT 1指令时激活SoftICE语法: I1HERE [on │ off]用法:I1HERE 命令使SoftICE在遇到程序中内嵌的INT 1指令时弹出.I1HERE在调试程序时需在某处暂停时特别有用.在SoftICE弹出之前, SoftICE会检查当前是否有一条INT 1指令在程序中.如果没有的话,SoftICE将不弹出.在程序要暂停的指令之前加一句INT 1 就能做到这一点.SoftICE弹出时,EIP 会停在INT 1的下一条指令后.I1HERE 不带参数将显示当前I1HERE的状态.缺省为OFFI1HERE 在与如BoundsChecker 之类的调试工具分工协作时很有用,因为BoundsChecker用到 INT 3,为了防止冲突应使用INT 1. 另外,VMM,Windows内存管理的VxD,在Windows出现某些严重错误时会在严重错误返回前执行一个INT 1指令.如果此时I1HERE 为ON时, 你就能跟踪这类错误. 如由VMM因换页错误而产生INT 1 时寄存器的值如下:.EAX = 错误地址..ESI 指向一个ASCII字符串(信息)..EBP 指向一个CRS(在DDK的VMM.INC中定义的客户寄存器结构)点评:基础信息: INT 1 实际上是单步中断的处理例程. CPU在检测到 TP 标志为1时(TP是由DEBUGGER设的), 就自动进行这一例程. DEBUGGER 们挂接这个中断例程进行一些诸如显示当前寄存器值等操作,并等待用户进一步的指令. 在程序中直接用 INT 1指令也能达到效果.SoftICE不象DOS下的DEBUG.EXE,一碰到 INT 1 就中断,缺省是不中断的,只有当I1HERE 为 ON 时才中断.命令: I3HERE作用: 在遇到INT 3 指令时激活SoftICE语法: I3HERE [on │ off]用法:I3HERE ON 将使SoftICE每碰到一个 INT 3 时都弹出,这在调试程序时需要在某处暂停特别有用.在你需要暂停的指令之前加一个INT 3 就行.如果你是编 WINDOWS程序,加个函数DebugBreak(). 这个函数也执行一个INT 3.I3HERE 不带参数将显示当前状态.请参见I1HERE.点评:基础信息: INT 3 是断点中断处理例程.也被DEBUGGER们挂接,显示寄存器值,给出一些信息,并等待用户下一步操作. DEBUGGER在下断点时,将断点处的指令替换成INT 3,把替换下的指令保存,在执行完例程后再恢复原先保存的指令,修改堆栈中的断点地址, 使程序得以继续. DOS下的老DEBUG.EXE当遇到程序中的INT 3 指令时会进行同样的操作,也修改堆栈中的断点地址,所以IP又停在那条INT 3 上, 如果你打入 G ,程序将一直停在此处,这时改一下IP就可以了.命令: IDT作用: 显示中断描述符表语法: IDT [interrupt-number]用法:interrupt-number: 所要显示的中断号IDT 命令读取中断描述符表寄存器的值, 获得表基址,然后显示中断描述符表的内容.IDT 命令不带参数将显示所有中断的情况,如果带中断号, 则只显示相应的入口. 输出参数如下:interrupt number: 0-05fh的中断号.interrupt type : 中断类型如下:---------------------CallG32: 32位调用门.CallG16: 16位调用门.TaskG: 任务门.TrapG16: 16位陷肼门.TrapG32: 32位陷肼门.IntG32: 32位中断门.IntG16: 16位中断门.---------------------address : (选择符:偏移量)形式的地址.selector's DPL : 选择符的描述符特权级,0,1,2,3present bit : P 或 NP, 表示该描述符是否在内存中.Owner+Offset : 符号名或拥有者名,和在它们中的偏移.点评: 参见GDT,LDT.命令: LDT作用: 显示局部描述符表语法: LDT [selector]用法:selector: 指定LDT 选择符LDT 命令将显示局部描述符表的内容. SoftICE先读取局部描述符表寄存器的值,再定位描述符表. 如果局部描述符表不存在,会显示一个错误信息. 如果指定选择符,则只显示该选择符所指向的描述符. 如果指定的选择符是一个全局选择符, 则SoftICE将自动显示该全局选择符所指的描述符.输出:LDT 的线性基址和长度将显示在输出数据的顶行输出数据的每一行内容的说明: value: 最低两位即描述符特权级type : 描述符类型,如下:---------------------------Code16 : 16位代码描述符Data16 : 16位数据描述符Code32 : 32位代码描述符Data32 : 32位数据描述符CallG32: 32位调用门描述符CallG16: 16位调用门描述符TaskG32: 32位任务门描述符TaskG16: 16位任务门描述符TrapG32: 32位陷肼门描述符TrapG16: 16位陷肼门描述符IntG32 : 32位中断门描述符IntG16 : 16位中断门描述符Reserved: 保留的描述符---------------------------base : 描述符中的段基址limit : 描述符中的段界限DPL : 描述符特权级,0,1,2,3present bit: P 或 NP 表示该段是否在内存中segment attributes: 段特性:---------------------------RW: 数据段可读写RO: 数据段只读RE: 代码段可读可执行EO: 代码段只可执行B : TSS(任务状态段)忙置位---------------------------点评:这段翻译并不完全用PDF手册上的.如"selector" 原指选择符(器),用来指向描述符表中的描述符,而PDF手册中type 的说明全用到 selector. 说的意思虽是一样,但和别的文献矛盾,故认为不妥,将其翻译成descriptor,即描述符. 实际上可以看出,一个选择符指向一个描述符,两者是一致的. 描述符类型实际上也就是指向它的选择符类型.命令: LHEAP作用: 显示Windows 局部堆语法: LHEAP [selector │ module-name]用法:selector : 局部描述符表数据选择符.module-name: 16位模块名.LHEAP 显示Windows程序在全局堆中申请的数据信息.如果不跟选择符参数,当前的DS 寄存器的内容(数据选择符)被做为缺省值. 用前次说过的HEAP 命令找标有LH 的选择符来做为LHEAP的参数.如果用module-name做参数,则SoftICE 用此模块的缺省数据段进行堆遍历.输出:offset: 16位的偏移量(相对于相应的选择符基址)size : 堆入口(每个组成部分)的字节大小.type : 类型如下:---------------------FIX : 固定的.MOV : 可移动的.FREE: 空闲的.---------------------handle: 相应的句柄.对固定的堆组成部分来说, 此值和offset 相等,且是由 LocalAlloc()返回的.对于可移动的组成部分来说,此值将会被做为LocalLock()的参数.点评: 无.(天气好热!翻译得好累!)命令: LINES作用: 改变SoftICE窗口的显示行数语法: LINES [25 │ 43 │ 50 │ 60]用法:LINES 命令用来改变SoftICE窗口的显示行数. 默认为25行.可以有:25 行;43 行;50 行;60 行;43,50,60行只适用于VGA卡.LINES 不带参数将显示当前行数.如果用 ALTSCR 命令切换显示器输出到单显,SoftICE自动转为25行,再转回VGA卡时要手工用LINES 命令来恢复原值.点评:实际上, 我的 3.20用的是SoftICE自带的通用视频驱动程序,行范围可以从25一直到128 !!(除非为SoftICE开的显存不够)命令: LOCALS作用: 从当前栈中列出局部变量语法: LOCALS用法:输出:Stack Offset : 栈偏移.Type definition: 类型定义.Value,Data,or structure symbol({...}): 值,数据,或结构符号.SoftICE根据局部变量的类型来用不同的形式显示它们,如果是指针,则显示所指向的数据.如果是结构,则显示结构符号.如果既不是指针,又不是结构,则显示本身值.点评: 无命令: M作用: 传送数据语法: M source-address l length dest-address用法:source-address: 源数据的起址;length : 要传送的字节长度;dest-address : 目的数据块的起址.用 M 命令将数据块从源地址传送到目的地址.如M ds:1000 l 2000 es:5000将2000h个字节从DS:1000h传到ES:5000h处.点评: 无命令: MACRO作用: 定义一个宏命令,使之执行一系列SoftICE指令.# 语法: MACRO [ macro-name] ││ [= "macro body"]用法:macro-name: 3-8个字符的宏名,(不区分大小写);macro-body: 用分号隔开的一系列SoftICE指令, 首末加冒号;* : 删除一个或所有的已定义的宏命令;= : 定义(或重定义)一个宏命令.MACRO 命令用于定义SoftICE指令的超集.macro-body可以包含SoftICE的指令,也可包含宏定义,甚至是当前的宏定义本身.(这当然会产生递归调用,如果编得不好的话会产生错误,也没有什么大意思).在这一系列命令之间用分号(;)隔开,最后一个命令后不用加分号.macro-body中还可以带入命令行参数,和DOS命令的%1,%2...一样,合法值在1-8之间.注意一点,macro-body首尾是用冒号的.所以在宏定义体中如果要用到 \, ", %时要在前加一 \,这跟C语言的写法是一致的.macro_name参数用来代表宏名,可以是字母或数字或下划线组成.可以是现有的宏名, 那样的话就会重定义这个宏.宏名不可以和现有的SoftICE内部指令相同.会发生错误.MACRO * 表示删除当前定义的所有(有名字的)宏.(因为断点的DO 子句实际上也是宏, 不过是无名字的,它们不能就这样被删除了!)MACRO mnames * 删除当前名为 mnames 的宏.MACRO mnames 将编辑名为 mnames 的宏, 在编辑过程中可以用ESC键取消改动.一个很有用的例子::MACRO 1shot = "bpx %1 do \"bc bpindex\""用这个宏可以设一个一次性断点,非常方便!点评: 无命令: MAP32作用: 显示当前所有32位模块的内存映象(图).语法: MAP32 [module-name │ module-handle │address]用法:module name : Windows模块名;module handle: 模块的基址;address : 落在可执行模块中的地址.MAP32 不带参数将显示所有的32位模块的信息.加参数将只显示指定模块的信息.输出如下:Owner : 模块名.OBJ Name: 可执行文件的区段名.Obj# : 可执行文件中的区段号.Address : 选择符:偏移量格式的区段地址.Size : 区段的大小(字节)Type : 区段类型:--------------------CODE 代码IDATA 初始化的数据UDATA 未初始化的数据RO 只读RW 读/写SHARED 对象是共享的.--------------------点评: 无命令: MAPV86作用: 显示当前虚拟机的DOS内存映象语法: MAPV86 [address]用法:address : 段:偏移量格式的地址MAPV86 不带参数将显示当前整个虚拟机的内存映象.加参数将显示指定包含所指定地址的内存区域的信息.有时侯DOS VM的页没有切进来,所以会有 "PAGE NOT PRESENT"的出错信息,所以可以再弹出一次.MAPV86 在配合SYMLOC命令时很有用,因为在Windows 启动前装载的程序,Windows不会自动将它们的符号信息映射到V86内存,用MAPV86命令就可以取得它们的代码段,将符号表与之对齐,就可以跟踪调试了.输出如下:VM ID : 虚拟机的ID.VM handle : 32位虚拟机的句柄.CRS pointer: 虚拟机的32位客户登记表的指针.(?)VM address : 32位线性地址.另外,如果SoftICE弹出时CS:IP指向一个MAPV86的入口,那一行的内容将高亮显示.点评: 无命令: MOD作用: 显示Windows模块列表.语法: MOD [partial-name]用法:partial-name: Windows模块名,(可以是开头的若干个字母).MOD 不带参数将显示所有的模块.若加 partial-name,则符合要求的模块将被列出.输出如下:module handle: 16位的句柄.base : 线性基址.pe-header : 选择符:偏移量格式的PE文件头.module name : 模块名.(编程序时在.DEF中用NAME或LIBRARY命名的.)file name : 文件的路径(全名).点评: 无命令: O作用: 向I/O端口输出数据.语法: O[size] port value用法:size : B 字节(缺省值);W 字;D 双字port : 端口地址.value: 要输出字节,字,或双字.O 命令将立即输出到硬件端口(当然那两个21h和A1h要等退出SoftICE窗口时才执行)(?)点评:关于21h和A1端口,二者是关系到中断的, PDF文档在这写得不是很详细.实际操作情况是多种多样的.。
HPUNIX操作系统管理常用命令
HPUNIX操作系统管理常用命令1. uname命令:用于显示操作系统的名称和版本。
例如,uname -a 可以显示全部的系统信息。
2. who命令:用于显示当前登录到系统的用户信息。
例如,who -u 可以显示包含详细信息的用户列表。
3. ps命令:用于显示当前系统上运行的进程信息。
例如,ps -ef可以显示所有进程的详细信息。
4. top命令:用于实时监视系统的资源使用情况。
例如,top -u可以显示按照CPU使用率排序的进程列表。
5. kill命令:用于终止正在运行的进程。
例如,kill PID可以终止具有指定进程ID的进程。
6. df命令:用于显示文件系统的磁盘空间使用情况。
例如,df -h 可以显示以人类可读的格式显示磁盘空间的详细信息。
7. du命令:用于计算目录或文件所占用的磁盘空间。
例如,du -sh 可以以人类可读的格式显示目录的磁盘空间使用情况。
8. ls命令:用于显示文件和目录的列表。
例如,ls -l可以显示以长格式列出的文件和目录。
9. cd命令:用于更改当前工作目录。
例如,cd /home可以将当前目录更改为/home。
10. mkdir命令:用于创建新的目录。
例如,mkdir mydir可以创建名为mydir的新目录。
11. rm命令:用于删除文件或目录。
例如,rm myfile.txt可以删除名为myfile.txt的文件。
12. cp命令:用于复制文件或目录。
例如,cp myfile.txt mydir可以将myfile.txt复制到mydir目录中。
13. mv命令:用于移动文件或目录。
例如,mv myfile.txt mydir可以将myfile.txt移动到mydir目录中。
14. cat命令:用于显示文件的内容。
例如,cat myfile.txt可以显示名为myfile.txt的文件内容。
15. tail命令:用于显示文件的尾部内容。
例如,tail -n 10 myfile.txt可以显示myfile.txt文件的最后10行。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Task 16
IAS23Borrowing costs
Accounting treatment
Borrowing costs that directly relate to the acquisition, construction or production of a qualifying asset must be capitalised as a part of the cost of that asset.
A qualifying asset is an asset that necessarily takes a substantial period of time to be ready for its intended use or sale.
Criteria of capitalization
Borrowing costs eligible for capitalisation:
Funds borrowed specifically for a qualifying asset –capitalise actual borrowing costs incurred less investment income on temporary investment of the funds.
Funds borrowed generally –weighted average of borrowing costs outstanding during the period (excluding borrowings specifically for a qualifying asset) multiplied by expenditure on qualifying asset. The amount capitalised should not exceed total borrowing costs incurred in the period.
Example
If borrow 1m, the borrowing rate is 10%, but the investment income about the borrowing is 10,000, so the capitalisation amount is 90,000.
When to capitalise& when cease Commencement of capitalisation begins when:
(a) Expenditures for the asset are being incurred;
(b) Borrowing costs are being incurred; and
(c) Activities that are necessary to prepare the asset
for its intended use or sale are in progress Capitalisation ceases when substantially all the activities necessary to prepare the qualifying asset for its intended use or sale are complete.
You’re a Champion! Thanks for staying with us. You have finished this task.。