`
mryufeng
  • 浏览: 982210 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

erl CTRL+C do_break 的功能

阅读更多
在erl shell下按下CTRL+C的时候
  erts_printf("\n"        "BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded\n"      "       (v)ersion (k)ill (D)b-tables (d)istribution\n");
但是实际上可以有更多功能 看代码:

  while (1) {
    if ((i = sys_get_key(0)) <= 0)
        erl_exit(0, "");
    switch (i) {
    case 'q':
    case 'a':
    case '*': /*
           * The asterisk is an read error on windows,
           * where sys_get_key isn't that great in console mode.
           * The usual reason for a read error is Ctrl-C. Treat this as
           * 'a' to avoid infinite loop.
           */
        erl_exit(0, "");
    case 'A':        /* Halt generating crash dump */
        erl_exit(1, "Crash dump requested by user");
    case 'c':
        return;
    case 'p':
        process_info(ERTS_PRINT_STDOUT, NULL);
        return;
    case 'm':
        return;
    case 'o':
        port_info(ERTS_PRINT_STDOUT, NULL);
        return;
    case 'i':
        info(ERTS_PRINT_STDOUT, NULL);
        return;
    case 'l':
        loaded(ERTS_PRINT_STDOUT, NULL);
        return;
    case 'v':
        erts_printf("Erlang (%s) emulator version "
               ERLANG_VERSION "\n",
               EMULATOR);
        erts_printf("Compiled on " ERLANG_COMPILE_DATE "\n");
        return;
    case 'd':
        distribution_info(ERTS_PRINT_STDOUT, NULL);
        return;
    case 'D':
        db_info(ERTS_PRINT_STDOUT, NULL, 1);
        return;
    case 'k':
        process_killer();
        return;
#ifdef OPPROF
    case 'X':
        dump_frequencies();
        return;
    case 'x':
        {
        int i;
        for (i = 0; i <= HIGHEST_OP; i++) {
            if (opc[i].name != NULL) {
            erts_printf("%-16s %8d\n", opc[i].name, opc[i].count);
            }
        }
        }
        return;
    case 'z':
        {
        int i;
        for (i = 0; i <= HIGHEST_OP; i++)
            opc[i].count = 0;
        }
        return;
#endif
#ifdef DEBUG
    case 't':
        p_slpq();
        return;
    case 'b':
        bin_check();
        return;
    case 'C':
        abort();
#endif
    case '\n':
        continue;
    default:
        erts_printf("Eh?\n\n");
    }
    }


好多调试用的功能 希望对大家有用。
分享到:
评论

相关推荐

    rabbitMq3.8.15+erl64_23.0.zip

    3.8.x系列引入了许多新功能和改进,包括增强的监控和管理工具、对TLS/SSL的支持、更灵活的插件机制等。此版本可能包含了性能优化、错误修复和安全更新,以确保可靠性和安全性。 **AMQP协议**: AMQP是一种开放标准,...

    rabbitMq3.8.15+erl64_23.0.7z

    在本压缩包“rabbitMq3.8.15+erl64_23.0.7z”中,包含的是RabbitMQ 3.8.15版本以及对应版本的Erlang运行环境,Erlang是RabbitMQ的基础,因为RabbitMQ是用Erlang编程语言编写的。 1. **RabbitMQ基本概念** - **消息...

    erl:otp_src_24.0.5.tar.gz

    标题中的"erl:otp_src_24.0.5.tar.gz"指的是Erlang的源码包,其中"otp_src_24.0.5"是Erlang/OTP (Open Telecom Platform) 的24.0.5版本的源代码。Erlang是一种面向并发的、函数式的编程语言,常用于构建高可用性和...

    erl_nif_rustler_过程宏写法

    在Erlang中,`NIF (Native Implemented Functions)` 是一种机制,允许开发者使用其他语言(如C或Rust)编写高效性能的代码,并在Erlang虚拟机中调用。本篇主要介绍如何利用Rust语言来开发Erlang NIF,并探讨`erl_nif...

    erlang入门级练习:LeetCode OJ问题的部分erlang 源码

    "candy.erl","dungeon_game.erl", "interleaving_string.erl","search_insert_position.erl", "three_sum.erl","trapping_rain_water.erl", "valid_palindrome.erl" 个人认为dungeon_game这个题目解题逻辑很体现...

    ERL+B表+爱尔兰+B表.

    标题中的“ERL+B表+爱尔兰+B表”指的是在通信领域中使用的一种计算模型,即爱尔兰公式(Erlang Formula)及其衍生出的B表。爱尔兰公式是电信系统设计和容量规划中的核心工具,用于估算呼叫中心、通信网络或任何服务...

    erl_nif 扩展erlang的另外一种方法

    通过`erl_nif`,开发者可以充分利用Erlang的并发特性,同时利用C语言的效率,创建出性能强大且功能丰富的Erlang应用。不过,使用NIFs也带来了复杂性,比如增加了代码维护的难度,以及可能破坏Erlang的容错性和并发...

    erlang高性能网络库esockd的编译和使用

    erlang高性能网络库esockd的编译和使用,erlang高性能网络库esockd的编译和使用

    RabbitMQ 3.10.7 + otp_win64_25.0

    4. 确保在环境变量中添加Erlang的bin目录,以便命令行可以找到erl等Erlang命令。 5. 完成安装后,通过运行`erl`命令检查Erlang是否成功安装。 **RabbitMQ 3.10.7 安装** 1. 获取RabbitMQ 3.10.7的安装包,通常为`....

    Erl_B表查询小工具

    **Erl_B表查询小工具** 是一个专为处理Erl_B数据的实用程序,它提供了用户友好的界面,使得对Erl_B表的查询变得简单而高效。Erl_B通常指的是Erlang B模型,这是一个在电信行业中广泛使用的数学模型,用于估算交换机...

    erl+rabbitMQ

    标题"erl+rabbitMQ"表明我们关注的是Erlang编程语言以及RabbitMQ消息队列系统。Erlang是一种面向并发的、通用的、函数式编程语言,尤其适合构建分布式系统。RabbitMQ则是基于Erlang开发的一款开源消息代理,它实现了...

    rabbitmq3.8.1+otp_win64_22.1 windows

    4. 完成安装后,可以在命令行输入`erl`来验证Erlang是否安装成功。 接下来是安装RabbitMQ 3.8.1步骤: 1. 访问RabbitMQ官网,找到适用于Windows的RabbitMQ服务器3.8.1版本。 2. 下载并运行安装程序,按照提示进行...

    erlang-windows-otp_win64_19.3.exe,

    为了学习rabbitmq下载的,分享出来,有用自取,安装出来是ERL8.3,不懂的SB不要下了

    erl_migrate:升级降级架构和迁移erlang应用程序数据库的数据的工具

    erl_migrate 升级/降级架构和迁移erlang应用程序数据库数据的工具 安装 运行make deps以安装depident 运行make来编译代码 用法 参数Options数据结构是map 创建迁移src文件 Args = #{ schema_name =&gt; mhs, ...

    erlang版本的protobuf(erl_protobuffs)

    1. **性能提升**:`erl_protobuffs`经过优化,相比其他Erlang的protobuf实现,如`protobuf-erl`或`thrift`,其解析和编码速度更快。这得益于Erlang自身的并发特性和轻量级进程,以及`erl_protobuffs`内部的高效算法...

    erl_to_html:使用解析转换和erl_id_trans.erl将erlang代码转换为跨度为_everything_HTML

    erl_to_html 使用解析变换和erl_id_trans.erl Erlang的代码转换为HTML,跨度的一切。...我不知道我需要怎么做许可证,但是由于我是从Erlang示例代码中复制erl_id_trans.erl,因此我正在使用Erlang公共许可证。

    kernel-Erlang

    The Kernel application is the first application ...• erl_boot_server • erl_ddll • error_logger • file • global • global_group • heart • inet • net_kernel • os • pg2 • rpc • seq_trace • user

    计算ERL的小工具计算ERL

    计算ERL的小工具计算ERL的小工具计算ERL的小工具计算ERL的小工具

Global site tag (gtag.js) - Google Analytics