фатальная ошибка: glibc обнаружил недопустимый дескриптор stdio [duplicate]

Самое простое решение - создать функцию JavaScript и вызвать его для обратного вызова Ajax success.

function callServerAsync(){
    $.ajax({
        url: '...',
        success: function(response) {

            successCallback(response);
        }
    });
}

function successCallback(responseObj){
    // Do something like read the response and show data
    alert(JSON.stringify(responseObj)); // Only applicable to JSON response
}

function foo(callback) {

    $.ajax({
        url: '...',
        success: function(response) {
           return callback(null, response);
        }
    });
}

var result = foo(function(err, result){
          if (!err)
           console.log(result);    
}); 
3
задан Oleg Arkhipov 31 May 2015 в 15:21
поделиться

1 ответ

Вот что вы видите в окне «Часы»:

a = 0 = 0x00 = 0x0000 = 0x00 0000 = 0x0000 0000

b = 167772160 = 16777216 * 10 = 0x1000000 * 0x0A = 0xA000000

c = 655360 = 65536 * 10 = 0x10000 * 0x0A = 0xA0000

d = 10 = 0x0A = 0x0000 000A

Что это значит? Это означает, что ваш компилятор выполнил свою работу, но ваш отладчик читает c и b как двойные слова (4 байта) вместо байтов.

Когда он читает в b, он считывает свое значение 0x00, значение c 0x0000 и d сверху 0x0A, вместе сделав его 0xA000000.

Подобное происходит с c. a повезло, так как следующие 4 байта равны нулю, поэтому a действительно равен нулю.

Однако это не всегда так. Ничто не говорит о том, что после d не может быть никакого мусора, не говоря уже о том, что переменные, равные нулю, могут появляться в .bss (в совершенно другой ячейке памяти).

3
ответ дан user35443 26 August 2018 в 19:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: