mirror of
https://github.com/moparisthebest/curl
synced 2024-08-13 17:03:50 -04:00
Debug trace curl_mprintf() on x86_64 and ia64 systems.
This commit is contained in:
parent
71d3c5bf41
commit
cbc04a7d40
@ -182,6 +182,19 @@ struct asprintf {
|
|||||||
|
|
||||||
int curl_msprintf(char *buffer, const char *format, ...);
|
int curl_msprintf(char *buffer, const char *format, ...);
|
||||||
|
|
||||||
|
static int trace_this(void)
|
||||||
|
{
|
||||||
|
const char * host = OS;
|
||||||
|
const char * arc1 = "x86_64";
|
||||||
|
const char * arc2 = "ia64";
|
||||||
|
|
||||||
|
if(0 == memcmp(host, arc1, strlen(arc1)))
|
||||||
|
return 1;
|
||||||
|
if(0 == memcmp(host, arc2, strlen(arc2)))
|
||||||
|
return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static long dprintf_DollarString(char *input, char **end)
|
static long dprintf_DollarString(char *input, char **end)
|
||||||
{
|
{
|
||||||
int number=0;
|
int number=0;
|
||||||
@ -582,30 +595,66 @@ static long dprintf_Pass1(const char *format, va_stack_t *vto, char **endpos,
|
|||||||
#ifdef HAVE_LONG_LONG_TYPE
|
#ifdef HAVE_LONG_LONG_TYPE
|
||||||
if((vto[i].flags & FLAGS_LONGLONG) && (vto[i].flags & FLAGS_UNSIGNED)) {
|
if((vto[i].flags & FLAGS_LONGLONG) && (vto[i].flags & FLAGS_UNSIGNED)) {
|
||||||
va_unsigned_long_long = va_arg(arglist, mp_uintmax_t);
|
va_unsigned_long_long = va_arg(arglist, mp_uintmax_t);
|
||||||
|
if(trace_this())
|
||||||
|
printf("va_unsigned_long_long = %llu\n",
|
||||||
|
va_unsigned_long_long);
|
||||||
vto[i].data.num.as_unsigned = (mp_uintmax_t)va_unsigned_long_long;
|
vto[i].data.num.as_unsigned = (mp_uintmax_t)va_unsigned_long_long;
|
||||||
|
if(trace_this())
|
||||||
|
printf("vto[i].data.num.as_unsigned = %llu\n",
|
||||||
|
vto[i].data.num.as_unsigned);
|
||||||
}
|
}
|
||||||
else if(vto[i].flags & FLAGS_LONGLONG) {
|
else if(vto[i].flags & FLAGS_LONGLONG) {
|
||||||
va_signed_long_long = va_arg(arglist, mp_intmax_t);
|
va_signed_long_long = va_arg(arglist, mp_intmax_t);
|
||||||
|
if(trace_this())
|
||||||
|
printf("va_signed_long_long = %lld\n",
|
||||||
|
va_signed_long_long);
|
||||||
vto[i].data.num.as_signed = (mp_intmax_t)va_signed_long_long;
|
vto[i].data.num.as_signed = (mp_intmax_t)va_signed_long_long;
|
||||||
|
if(trace_this())
|
||||||
|
printf("vto[i].data.num.as_signed = %lld\n",
|
||||||
|
vto[i].data.num.as_signed);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
if((vto[i].flags & FLAGS_LONG) && (vto[i].flags & FLAGS_UNSIGNED)) {
|
if((vto[i].flags & FLAGS_LONG) && (vto[i].flags & FLAGS_UNSIGNED)) {
|
||||||
va_unsigned_long = va_arg(arglist, unsigned long);
|
va_unsigned_long = va_arg(arglist, unsigned long);
|
||||||
|
if(trace_this())
|
||||||
|
printf("va_unsigned_long = %lu\n",
|
||||||
|
va_unsigned_long);
|
||||||
vto[i].data.num.as_unsigned = (mp_uintmax_t)va_unsigned_long;
|
vto[i].data.num.as_unsigned = (mp_uintmax_t)va_unsigned_long;
|
||||||
|
if(trace_this())
|
||||||
|
printf("vto[i].data.num.as_unsigned = %llu\n",
|
||||||
|
vto[i].data.num.as_unsigned);
|
||||||
}
|
}
|
||||||
else if(vto[i].flags & FLAGS_LONG) {
|
else if(vto[i].flags & FLAGS_LONG) {
|
||||||
va_signed_long = va_arg(arglist, long);
|
va_signed_long = va_arg(arglist, long);
|
||||||
|
if(trace_this())
|
||||||
|
printf("va_signed_long = %ld\n",
|
||||||
|
va_signed_long);
|
||||||
vto[i].data.num.as_signed = (mp_intmax_t)va_signed_long;
|
vto[i].data.num.as_signed = (mp_intmax_t)va_signed_long;
|
||||||
|
if(trace_this())
|
||||||
|
printf("vto[i].data.num.as_signed = %lld\n",
|
||||||
|
vto[i].data.num.as_signed);
|
||||||
}
|
}
|
||||||
else if(vto[i].flags & FLAGS_UNSIGNED) {
|
else if(vto[i].flags & FLAGS_UNSIGNED) {
|
||||||
va_unsigned_int = va_arg(arglist, unsigned int);
|
va_unsigned_int = va_arg(arglist, unsigned int);
|
||||||
|
if(trace_this())
|
||||||
|
printf("va_unsigned_int = %u\n",
|
||||||
|
va_unsigned_int);
|
||||||
vto[i].data.num.as_unsigned = (mp_uintmax_t)va_unsigned_int;
|
vto[i].data.num.as_unsigned = (mp_uintmax_t)va_unsigned_int;
|
||||||
|
if(trace_this())
|
||||||
|
printf("vto[i].data.num.as_unsigned = %llu\n",
|
||||||
|
vto[i].data.num.as_unsigned);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
va_signed_int = va_arg(arglist, int);
|
va_signed_int = va_arg(arglist, int);
|
||||||
|
if(trace_this())
|
||||||
|
printf("va_signed_int = %d\n",
|
||||||
|
va_signed_int);
|
||||||
vto[i].data.num.as_signed = (mp_intmax_t)va_signed_int;
|
vto[i].data.num.as_signed = (mp_intmax_t)va_signed_int;
|
||||||
|
if(trace_this())
|
||||||
|
printf("vto[i].data.num.as_signed = %lld\n",
|
||||||
|
vto[i].data.num.as_signed);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -777,13 +826,25 @@ static int dprintf_formatf(
|
|||||||
base = 10;
|
base = 10;
|
||||||
|
|
||||||
signed_num = p->data.num.as_signed;
|
signed_num = p->data.num.as_signed;
|
||||||
|
if(trace_this())
|
||||||
|
printf("1 signed_num = %lld\n", signed_num);
|
||||||
is_neg = (signed_num < (mp_intmax_t)0) ? 1 : 0;
|
is_neg = (signed_num < (mp_intmax_t)0) ? 1 : 0;
|
||||||
|
if(trace_this())
|
||||||
|
printf("is_neg = %d\n", is_neg);
|
||||||
if(is_neg) {
|
if(is_neg) {
|
||||||
/* signed_num might fail to hold absolute negative minimum by 1 */
|
/* signed_num might fail to hold absolute negative minimum by 1 */
|
||||||
signed_num += (mp_intmax_t)1;
|
signed_num += (mp_intmax_t)1;
|
||||||
|
if(trace_this())
|
||||||
|
printf("2 signed_num = %lld\n", signed_num);
|
||||||
signed_num = -signed_num;
|
signed_num = -signed_num;
|
||||||
|
if(trace_this())
|
||||||
|
printf("3 signed_num = %lld\n", signed_num);
|
||||||
num = (mp_uintmax_t)signed_num;
|
num = (mp_uintmax_t)signed_num;
|
||||||
|
if(trace_this())
|
||||||
|
printf("4 num = %llu\n", num);
|
||||||
num += (mp_uintmax_t)0x1;
|
num += (mp_uintmax_t)0x1;
|
||||||
|
if(trace_this())
|
||||||
|
printf("5 num = %llu\n", num);
|
||||||
}
|
}
|
||||||
|
|
||||||
goto number;
|
goto number;
|
||||||
|
Loading…
Reference in New Issue
Block a user