#include "target/target.h"
#include "target/target_type.h"
#include "helper/log.h"
+#include "helper/types.h"
#include "rtos.h"
-#include "helper/log.h"
#include "rtos_standard_stackings.h"
#include <target/register.h>
#include "server/gdb_server.h"
hex_string += sprintf(hex_string, "%02x", 0);
uint32_t cpsr = 0x00000000;
- hex_string = reg_converter(hex_string, &cpsr, 4);
+ reg_converter(hex_string, &cpsr, 4);
}
}
return ERROR_OK;
{
unsigned int i;
*symbol_list = (symbol_table_elem_t *)
- malloc(sizeof(symbol_table_elem_t) / sizeof(char *));
+ malloc(sizeof(symbol_table_elem_t) * ARRAY_SIZE(linux_symbol_list));
- for (i = 0; i < sizeof(linux_symbol_list) / sizeof(char *); i++)
+ for (i = 0; i < ARRAY_SIZE(linux_symbol_list); i++)
(*symbol_list)[i].symbol_name = linux_symbol_list[i];
return 0;
} else
LOG_ERROR("fill task: unable to read memory");
+ free(buffer);
+
return retval;
}
int retval;
if (target_get_gdb_reg_list(head->target, ®_list,
- ®_list_size) != ERROR_OK)
+ ®_list_size) != ERROR_OK) {
+ free(buffer);
return ERROR_TARGET_FAILURE;
+ }
if (!reg_list[13]->valid)
reg_list[13]->type->get(reg_list[13]);
head = head->next;
}
+ free(buffer);
+
return ERROR_OK;
}
(uint8_t *) registers);
if (retval != ERROR_OK) {
+ free(buffer);
LOG_ERROR("cpu_context: unable to read memory\n");
return context;
}
if (*thread_info_addr_old == 0xdeadbeef)
*thread_info_addr_old = thread_info_addr_update;
+ free(buffer);
+
return context;
}
if (retval == ERROR_OK) {
uint32_t val = get_buffer(target, buffer);
val = val - NEXT;
- return val;
free(buffer);
+ return val;
} else
LOG_ERROR("next task: unable to read memory");
+ free(buffer);
+
return 0;
}
struct threads *last = NULL;
t->base_addr = linux_os->init_task_addr;
/* retrieve the thread id , currently running in the different smp core */
- retval = get_current(target, 1);
+ get_current(target, 1);
while (((t->base_addr != linux_os->init_task_addr) &&
(t->base_addr != 0)) || (loop == 0)) {
loop++;
- retval = fill_task(target, t);
+ fill_task(target, t);
retval = get_name(target, t);
if (loop > MAX_THREADS) {
+ free(t);
LOG_INFO("more than %d threads !!", MAX_THREADS);
return ERROR_FAIL;
}
(timeval_ms() - start) / linux_os->threadid_count);
LOG_INFO("threadid count %d", linux_os->threadid_count);
+ free(t);
return ERROR_OK;
}
#ifndef PID_CHECK
error_handling:
free(t);
- LOG_ERROR("unable toread pid");
+ LOG_ERROR("unable to read pid");
return;
#endif
tmp_str_ptr +=
sprintf(tmp_str_ptr, "%d", (int)temp->pid);
tmp_str_ptr += sprintf(tmp_str_ptr, "%s", " | ");
- tmp_str_ptr += sprintf(tmp_str_ptr, "%s", name);
+ sprintf(tmp_str_ptr, "%s", name);
sprintf(tmp_str_ptr, "%s", temp->name);
char *hex_str =
(char *)calloc(1, strlen(tmp_str) * 2 + 1);
if ((strstr(packet, "qSymbol"))) {
if (rtos_qsymbol(connection, packet, packet_size) == 1) {
- gdb_put_packet(connection, "OK", 2);
-
linux_compute_virt2phys(target,
target->rtos->
symbols[INIT_TASK].
}
}
- /* if a packet handler returned an error, exit input loop */
+ /* if a packet handler returned an error, exit input loop */
if (retval != ERROR_OK)
return retval;
}