diff --git a/README.md b/README.md index 62b06a6..a85dd74 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,53 @@ SNOOPerToCSV.exe AAA.txt -t -1.2 -f Voltage,11 float 当ID与子串名同时指定了一个条目时,子串名的优先级要高于ID; +## 支持的输出类型 + +默认支持的输出类型如下: + +```C++ + // Main.cpp:74 + + // 非法的类型输入 + if (!(!strcmp(argv[count + 2], "uint") || + !strcmp(argv[count + 2], "ubyte") || + !strcmp(argv[count + 2], "uint8_t") || + !strcmp(argv[count + 2], "uint16_t") || + !strcmp(argv[count + 2], "uint32_t") || + !strcmp(argv[count + 2], "uint64_t") || + !strcmp(argv[count + 2], "int") || + !strcmp(argv[count + 2], "sbyte") || + !strcmp(argv[count + 2], "int8_t") || + !strcmp(argv[count + 2], "int16_t") || + !strcmp(argv[count + 2], "int32_t") || + !strcmp(argv[count + 2], "int64_t") || + !strcmp(argv[count + 2], "float") || + !strcmp(argv[count + 2], "double"))) + { + printf("Warning: invalid format type \"%s\",skip.\n", argv[count + 2]); + count += 2; + continue; + } + + ... +``` + +如上,默认支持的输出类型为`stdint.h`定义的标准类型和部分常用类型,如果你想添加自己的类型支持,需要修改这个非法类型过滤,并在`Main:418`后对新增的类型添加格式化输出: + +```C++ + // Main:418 + + // int8_t sbyte + if (!strcmp(target_value_node->value_type_str, "sbyte") || + !strcmp(target_value_node->value_type_str, "int8_t")) + { + int8_t *value = (int8_t *)&(target_value_node->raw_value); + fprintf(output_file, ",%d", *value); + } + + ... +``` + ## 关于构建 本仓库所使用的构建平台及环境为如下: OS:Windows11 Professional 24H2 (26100.4652) @@ -65,7 +112,4 @@ SNOOPerToCSV.exe AAA.txt -t -1.2 -f Voltage,11 float ├─Test 测试用文件 │ └─Lauterbach-SNOOPer.txt 测试用文件,SNOOPer输出 ├─.gitignore 仓库忽略文件 - └─Makefile 编译构建所用的Makefile - - - + └─Makefile 编译构建所用的Makefile \ No newline at end of file