* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. *
***************************************************************************/
#ifdef HAVE_CONFIG_H
int rtos_create(Jim_GetOptInfo *goi, struct target *target)
{
int x;
- char *cp;
+ const char *cp;
struct Jim_Obj *res;
if (!goi->isconfigure && goi->argc != 0) {
goto done;
/* Decode any symbol name in the packet*/
- int len = unhexify(cur_sym, strchr(packet + 8, ':') + 1, strlen(strchr(packet + 8, ':') + 1));
+ size_t len = unhexify((uint8_t *)cur_sym, strchr(packet + 8, ':') + 1, strlen(strchr(packet + 8, ':') + 1));
cur_sym[len] = 0;
if ((strcmp(packet, "qSymbol::") != 0) && /* GDB is not offering symbol lookup for the first time */
struct thread_detail *detail = &target->rtos->thread_details[found];
int str_size = 0;
- if (detail->display_str != NULL)
- str_size += strlen(detail->display_str);
if (detail->thread_name_str != NULL)
str_size += strlen(detail->thread_name_str);
if (detail->extra_info_str != NULL)
str_size += strlen(detail->extra_info_str);
- char *tmp_str = calloc(str_size + 7, sizeof(char));
+ char *tmp_str = calloc(str_size + 4, sizeof(char));
char *tmp_str_ptr = tmp_str;
- if (detail->display_str != NULL)
- tmp_str_ptr += sprintf(tmp_str_ptr, "%s", detail->display_str);
- if (detail->thread_name_str != NULL) {
- if (tmp_str_ptr != tmp_str)
- tmp_str_ptr += sprintf(tmp_str_ptr, " : ");
+ if (detail->thread_name_str != NULL)
tmp_str_ptr += sprintf(tmp_str_ptr, "%s", detail->thread_name_str);
- }
if (detail->extra_info_str != NULL) {
if (tmp_str_ptr != tmp_str)
tmp_str_ptr += sprintf(tmp_str_ptr, " : ");
- tmp_str_ptr +=
- sprintf(tmp_str_ptr, " : %s", detail->extra_info_str);
+ tmp_str_ptr += sprintf(tmp_str_ptr, "%s", detail->extra_info_str);
}
assert(strlen(tmp_str) ==
list_size += stacking->register_offsets[i].width_bits/8;
*hex_reg_list = malloc(list_size*2 + 1);
tmp_str_ptr = *hex_reg_list;
- new_stack_ptr = stack_ptr - stacking->stack_growth_direction *
- stacking->stack_registers_size;
- if (stacking->stack_alignment != 0) {
- /* Align new stack pointer to x byte boundary */
- new_stack_ptr =
- (new_stack_ptr & (~((int64_t) stacking->stack_alignment - 1))) +
- ((stacking->stack_growth_direction == -1) ? stacking->stack_alignment : 0);
+ if (stacking->calculate_process_stack != NULL) {
+ new_stack_ptr = stacking->calculate_process_stack(target,
+ stack_data, stacking, stack_ptr);
+ } else {
+ new_stack_ptr = stack_ptr - stacking->stack_growth_direction *
+ stacking->stack_registers_size;
}
for (i = 0; i < stacking->num_output_registers; i++) {
int j;
for (j = 0; j < rtos->thread_count; j++) {
struct thread_detail *current_thread = &rtos->thread_details[j];
- free(current_thread->display_str);
free(current_thread->thread_name_str);
free(current_thread->extra_info_str);
}