gpt4 book ai didi

Android native 进程: stack corruption detected

转载 作者:行者123 更新时间:2023-11-30 19:35:19 26 4
gpt4 key购买 nike

我正在增强一个 native 应用程序,该应用程序已经是 Google 源代码的一部分。我看到一场车祸。我尝试过调试这个,但无法得出结论。非常感谢您的帮助:

struct device_global {
struct support *sport;
struct support_params params;
struct global_priv *ctrl;

#if defined FEATURE_1
int freq, freq_2;
#endif /* FEATURE_1 */

#ifdef FEATURE_2
int wifi_display;
#define SUBELEMS 10
struct buf *subelem[MAX_SUBELEMS];
#endif /* FEATURE_2 */

struct list_entry *add_list_entry;

#ifdef FEATURE_3
void* my_context;
#endif /* FEATURE_3 */
};

typedef unsigned long DWORD;
typedef DWORD *PDWORD;

typedef struct
{
DWORD dwFlags;
DWORD dwErrorCode;
DWORD dwDeviceId;

#ifdef FEATURE_X
CHAR* tableFileName;
#endif

#ifdef FEATURE_Y
FILE* tableFile;
DWORD headerVersion;
DWORD headerSize;
#endif
} CONTEXT1, *CONTEXT2;


struct device_global * init(struct support_params *params)
{
struct device_global *global;
global = os_malloc(sizeof(*global));
if (params->ctrl)
global->params.ctrl = os_strdup(params->ctrl);
// Assignment of other global variables done here like above (not added here to remove clutter)

int deviceId = 0;
if (0 == getDeviceId(global->my_context, (PDWORD) &deviceId))
{
printf("Device ID 0x%x", deviceId);
}
printf("Before returning global"); // gets printed before crash
return global; // crashes here
}



DWORD getDeviceId(PVOID pContext, PDWORD myDeviceId)
{
CONTEXT2 myContext;

if (!pContext || !myDeviceId)
{
return -1;
}
else
{
myContext = (CONTEXT2) pContext;
*myDeviceId = myContext->dwDeviceId;
}

return 0;
}

崩溃恰好发生在“返回全局”的 init 方法中。 printf 语句被打印出来,然后崩溃出现。请分享您的宝贵意见。

崩溃对应的错误信息是:

03-16 12:30:03.230  5626  5626 F DEBUG   : signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
03-16 12:30:03.232 5626 5626 F DEBUG : Abort message: 'stack corruption detected'

最佳答案

my_context 指针此处未初始化:

if (0 == getDeviceId(global->my_context, (PDWORD) &deviceId))    

因此您的程序表现出未定义的行为,最终导致崩溃。

关于Android native 进程: stack corruption detected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42835168/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com