将核心转储文件加载到gdb时,我收到以下警告,看起来加载某些符号也因此而失败。
var userID = "83738373";
var arrayOfCommands = {
"commands": [
{
"user": "Rusty",
"user_id": "83738373",
"command_name": "TestCommand",
"command_reply": "TestReply"
}
]
}
//Function to return a simple boolean
function exceededMaximumComands(user){
var count = 0;
for (let i = 0; i < arrayOfCommands.commands.length; i++) {
if (arrayOfCommands.commands.user_id === userID) {
count++;
if(count > 2){
return true;
}
}
}
}
//Reusable function for throwing error message
function maximumExceeded(){
//change this with your code
message.reply("You cannot make more than 3 commands.");
}
//Where the code executes
var hasExceeded = exceededMaximumComands(userID);
//Check the result
if (hasExceeded){
maximumExceeded();
}
知道如何解决这个问题吗?
答案 0 :(得分:7)
警告:无法解析.gnu_debugdata部分; LZMA支持在编译时被禁用
GDB支持名为"mini debug info"的功能。此功能允许将完整调试信息的子集添加到结果文件的特殊部分。一些Linux发行版,如Fedora,使用它来发送部分debuginfo,以便堆栈跟踪可以更容易“符号化”。
此部分使用LZMA进行压缩,因此必须使用LZMA支持构建GDB才能阅读该部分。
您的GDB不是使用此支持构建的,因此它会通知您它找到了context.Respond(...)
部分,但无法读取它。
通常情况下这并不重要。这可能意味着您会看到来自系统库的代码的堆栈跟踪稍差。
修复是重建GDB,确保在运行.gnu_debugdata
之前安装了LZMA开发包。