标签: panic

Android/Eclipse PANIC:无法打开

我是Android开发和Eclipse的新手,所以我只是把它全部设置好,我正在尝试Hello World教程.可悲的是,当我尝试运行程序时,我收到以下错误:

PANIC:无法打开:C:\ Users\Nathan Smith.android/avd/Droid_4.0.3.ini

我听说你应该避开这些路径中的空间.名称中的空格是问题所在吗?如果是这样,我该如何改变呢?

如果有人能帮我解决这个问题,那就太棒了.

顺便说一下,我还注意到我的SDK路径是C:\Users\Asus Laptop\android-sdks\应该将其更改为同一个用户?这不是故意的,是否有一种简单的方法可以让我将其更改为正确的用户?

eclipse android panic

15
推荐指数
3
解决办法
4万
查看次数

Go为什么要写封闭频道?

Go为什么要写封闭频道?

虽然可以使用这个value, ok := <-channel成语从频道中读取,因此可以测试ok结果是否可以打开一个封闭的频道:

// reading from closed channel

package main

import "fmt"

func main() {
    ch := make(chan int, 1)
    ch <- 2
    close(ch)

    read(ch)
    read(ch)
    read(ch)
}

func read(ch <-chan int) {
    i,ok := <- ch   
    if !ok {
        fmt.Printf("channel is closed\n")
        return
    }
    fmt.Printf("read %d from channel\n", i)
}
Run Code Online (Sandbox Code Playgroud)

输出:

read 2 from channel
channel is closed
channel is closed
Run Code Online (Sandbox Code Playgroud)

Playground上运行"从封闭频道阅读"

写入可能关闭的频道更复杂,因为如果您只是在频道关闭时尝试写,Go会感到恐慌:

//writing to closed channel

package main

import (
    "fmt"
) …
Run Code Online (Sandbox Code Playgroud)

concurrency channel go panic goroutine

12
推荐指数
1
解决办法
1万
查看次数

Golang恐慌崩溃预防

在Golang中,没有恢复的恐慌会导致进程崩溃,因此我最终将以下代码片段放在每个函数的开头:

defer func() {
    if err := recover(); err != nil {
        fmt.Println(err)
    }
}()
Run Code Online (Sandbox Code Playgroud)

只是为了防止我的程序崩溃.现在我想知道,它真的是要走的路吗?因为我认为在任何地方放置相同的代码看起来有点奇怪.

在我看来,Java方式,将异常冒泡到调用函数,直到main函数是控制异常/恐慌的更好方法.我理解这是由Go的设计,但是像Go那样立即崩溃过程有什么好处?

crash recover go panic

9
推荐指数
1
解决办法
6882
查看次数

在panic()发生之前使用trace-cmd/ftrace来获取function_graph

我试图trace-cmd收集有关我看到的内核崩溃的更多信息.不幸的是,内核崩溃时出现"内核崩溃 - 不同步"消息(即套接字和文件缓冲区没有刷新,因此崩溃时缓冲区中的任何内容都不可避免地丢失).

有办法:

  1. 强制trace-cmd进程将其缓冲区刷新到文件系统或套接字?要么
  2. make trace-cmd/ftrace以避免缓冲(即在场景后面调用printk()并使用netconsole)?

由于我trace-cmd在虚拟化环境中运行该命令,因此我不关心硬盘驱动器是否偶尔会损坏,因为我可以简单地恢复到最后一个良好的快照或重新部署VM.

crash ftrace linux-kernel panic

9
推荐指数
1
解决办法
223
查看次数

kernel的panic()函数是否完全冻结了其他所有进程?

我想确认的是内核的panic()功能和其他人一样kernel_halt()machine_halt(),一旦被触发,保证机器的完全冻结.

那么,所有内核和用户进程都被冻结了吗?panic()调度程序是否可以中断?中断处理程序仍然可以执行?

使用案例:如果出现严重错误,我需要确保硬件看门狗重置机器.为此,我需要确保没有其他线程/进程使看门狗保持活跃状态​​.我需要触发完全停止系统.目前,在我的内核模块中,我只是调用panic()冻结所有内容.

另外,用户空间halt命令可以保证冻结系统吗?

谢谢.

编辑:根据:http://linux.die.net/man/2/reboot,我认为最好的方法是使用reboot(LINUX_REBOOT_CMD_HALT):"控制权给予ROM监视器,如果有的话"

linux kernel panic

8
推荐指数
1
解决办法
5947
查看次数

如何检测延迟函数中的panic(nil)和正常执行Go?

go运行时可以检测panic(nil)并报告错误.

但是,我不能检测panic(nil)recover()defer红色的功能,因为它返回nil,所以我不能正常执行(没有出现恐慌)区别开来,因为我将测试的返回值recover()是零.

例如,

defer func(){
    var err = recover()
    if err != nil {
       // Real serious situation. Panic from inner code.
       // And we may have some critical resources which 
       // must be cleaned-up at any cases.
       // However, this will not be executed for panic(nil) 

       rollback()

       // I am still not sure that how should I treat `panic`…
       // Should I just ignore them?
    }
}() …
Run Code Online (Sandbox Code Playgroud)

go panic

8
推荐指数
3
解决办法
1476
查看次数

--release 的恐慌!()和期望()的替代品?

在开发中,我的代码使用.expect()panic!()来处理致命错误。

他们的行为正是我在开发过程中所需要的。

当我使用 进行编译时--release,我希望它们的输出会变得更加简洁。

即这段代码:

let mut file_a = OpenOptions::new().write(true)
                                   .read(true)
                                   .open(args.file_a).expect("foo bar");
Run Code Online (Sandbox Code Playgroud)

生成:

thread 'main' panicked at 'foo bar: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/bin/vsapply.rs:131:59
Run Code Online (Sandbox Code Playgroud)

当我只想:

foo bar: No such file or directory
Run Code Online (Sandbox Code Playgroud)

当用--release.

已经有办法做到这一点了吗?

panic rust

8
推荐指数
2
解决办法
1954
查看次数

Golang的安全关闭

当我打开套接字连接时,我在套接字打开后立即将socket.Close()逻辑放入defer函数中.但是,如果socket.Close()会导致另一个恐慌怎么办?我应该总是在外部延迟内嵌套另一个延迟/恢复以防止我的程序崩溃吗?像这样:http://play.golang.org/p/GnEMQS-0jj

谢谢,Elgs

recover go panic

7
推荐指数
1
解决办法
7323
查看次数

我可以从恐慌中恢复,处理错误,然后再次恐慌并保持原始堆栈跟踪?

是否有可能"重新抛出"错误recover并保留原始堆栈跟踪?我知道如何做的最好的事情就是再次恐慌,但这确实会创建一个新的堆栈跟踪.

func do() {
    defer func() {
        cleanUp()
        if x := recover(); x != nil {
            handleError()
            panic(x)
        }
    }()
    doStuff()
}
Run Code Online (Sandbox Code Playgroud)

我想要这个的动机是,除非我的函数正常退出或handleError运行,否则我的程序会死锁.除非我保留原始的痕迹,否则我不知道它在哪里坠毁.

error-handling stack-trace go panic

7
推荐指数
2
解决办法
1370
查看次数

从 Rust 钩子中的恐慌中检索回溯?

我的应用程序需要通过标准输出将日志以 JSON 格式发送到 fluentd。
当我试图处理恐慌并将 a&std::panic::PanicInfo作为 JSON安排时std::panic::set_hook,我找不到从 a 中检索回溯的方法&PanicInfo

有没有办法从自定义钩子中的恐慌中检索回溯?

logging backtrace panic rust

7
推荐指数
2
解决办法
2291
查看次数